08-09-20, 01:20 AM
(آخر تعديل لهذه المشاركة : 08-09-20, 01:23 AM {2} بواسطة Anas Mahmoud.)
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
تقديم :
كنت طرحت موضوع عن جعل البرنامج يفتح مرة واحدة فقط في نفس الوقت
ولكن الموضوع كان معقد بعض الشيء لذلك فكرت ان اضع الكود في Class سميته SingleInstance
فيه طريقة Static اسمها NewInstance تقوم بالمطلوب وتعيد قيمة اذا كانت هذه نسخة جديدة من البرنامج ام النسخة الاولى
وكذلك فيه Class اسمه SingleForm يرث من الفئة Form العادية ولكن اضفت حدث NewInstanceOpened يطلق عند فتح نسخة مكررة من البرنامج ، يمكننا من فعل ما نريده عندما يقوم المستخدم بفتح نسخة مكررة من البرنامج ، نعرض رسالة مثلا او نظهر الفورم اذا كان مخفي ،
الاستخدام :
استخدام الفئة في غاية البساطة ،
1. فقط اضف الملف SingleInstance.cs الى مشروعك ، ومن ثم قم بعمل Build
2. الان انتقل الى ملف Program.cs واضف السطر التالي في void main قبل كل شيء :
3. الان انتقل الى الفورم الرئيسي ( او الفورم الذي تريد ان تستمع فيه لحدث فتح نسخة مكررة من البرنامج )
وافتح ملف الكود Form1.cs وغير Form في تعريف الفئة الى SingleForm لكي يرث من الفئة التي عرفناها والتي تتضمن الحدث :
الان تجد ان الحدث موجود في قائمة الاحداث :
يمكنك ان تكتب ماتريد فعله عندما تفتح نسخة مكررة من البرنامج ، مثلا ان تقوم باظهار النافذة اذا كانت مصغرة او بالخلف:
الكود في الفئة ليس من عندي ولا الفكرة كذلك ، انا مجرد جمعتها في كلاس لسهولة الاستخدام فقط
المصدر : http://sanity-free.org/143/csharp_dotnet...ation.html
السلام عليكم ورحمة الله وبركاته
تقديم :
كنت طرحت موضوع عن جعل البرنامج يفتح مرة واحدة فقط في نفس الوقت
ولكن الموضوع كان معقد بعض الشيء لذلك فكرت ان اضع الكود في Class سميته SingleInstance
فيه طريقة Static اسمها NewInstance تقوم بالمطلوب وتعيد قيمة اذا كانت هذه نسخة جديدة من البرنامج ام النسخة الاولى
وكذلك فيه Class اسمه SingleForm يرث من الفئة Form العادية ولكن اضفت حدث NewInstanceOpened يطلق عند فتح نسخة مكررة من البرنامج ، يمكننا من فعل ما نريده عندما يقوم المستخدم بفتح نسخة مكررة من البرنامج ، نعرض رسالة مثلا او نظهر الفورم اذا كان مخفي ،
الاستخدام :
استخدام الفئة في غاية البساطة ،
1. فقط اضف الملف SingleInstance.cs الى مشروعك ، ومن ثم قم بعمل Build
2. الان انتقل الى ملف Program.cs واضف السطر التالي في void main قبل كل شيء :
كود :
if (SingleInstance.NewInstance()) return;
3. الان انتقل الى الفورم الرئيسي ( او الفورم الذي تريد ان تستمع فيه لحدث فتح نسخة مكررة من البرنامج )
وافتح ملف الكود Form1.cs وغير Form في تعريف الفئة الى SingleForm لكي يرث من الفئة التي عرفناها والتي تتضمن الحدث :
الان تجد ان الحدث موجود في قائمة الاحداث :
يمكنك ان تكتب ماتريد فعله عندما تفتح نسخة مكررة من البرنامج ، مثلا ان تقوم باظهار النافذة اذا كانت مصغرة او بالخلف:
كود :
private void Form1_NewInstanceOpened(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
WindowState = FormWindowState.Normal;
bool top = TopMost;
TopMost = true;
TopMost = top;
}
المصدر : http://sanity-free.org/143/csharp_dotnet...ation.html