تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[C#.NET] الفئة SingleInstance لمنع البرنامج ان يفتح اكثر من مرة في نفس الوقت باسهل طريقة
#1
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته


تقديم : 

كنت طرحت موضوع عن جعل البرنامج يفتح مرة واحدة فقط في نفس الوقت 

ولكن الموضوع كان معقد بعض الشيء لذلك فكرت ان اضع الكود في 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


الملفات المرفقة
.zip   SingleInstance.zip (الحجم : 818 بايت / التحميلات : 0)
.zip   SingleInstanceExample.zip (الحجم : 42.02 ك ب / التحميلات : 0)
الرد



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم