تقييم الموضوع :
  • 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 بايت / التحميلات : 58)
.zip   SingleInstanceExample.zip (الحجم : 42.02 ك ب / التحميلات : 53)
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مشروع] حساب الوقت (دخول و خروج الموظف) #C Kamil 0 741 05-01-24, 08:16 PM
آخر رد: Kamil
Lightbulb [نقاش] محتاج رايكم في البرنامج الي شغال عليه الحاجات السلبية mazentq 3 2,534 22-04-22, 02:51 AM
آخر رد: كريم الفقى
Video [درس فيديو] 3- ربط البرنامج المصمم بلغه البرمجة #C مع قواعد البيانات Sqlserver الجزء الثالث rabia al hamdani 0 2,462 20-02-22, 03:18 AM
آخر رد: rabia al hamdani
Video [درس فيديو] 2- شرح ربط البرنامج المصمم بلغه البرمجة #C مع قواعد البيانات Sqlserver الجزء الثاني rabia al hamdani 0 1,560 20-02-22, 03:13 AM
آخر رد: rabia al hamdani
Video [درس فيديو] 1- شرح ربط البرنامج المصمم بلغه البرمجة #C مع قواعد البيانات Sqlserver الجزء الاول rabia al hamdani 0 1,512 20-02-22, 03:11 AM
آخر رد: rabia al hamdani
  [سؤال] طلب طريقة طباعة أكثر من فاتورة في صفحة واحدة m4n2net2000 0 1,715 12-10-20, 10:34 AM
آخر رد: m4n2net2000
  [مشروع] سورس كود مسبحة قرئانية مع ظهور الوقت والتاريخ واليوم مع منبه سوري حر 3 4,680 13-05-20, 06:14 PM
آخر رد: alsouf
  [مشروع] التلاعب بالاسم [يوجد كود منع تكرار تشغيل البرنامج ضمن كلاس Program.cs] سعود 0 1,994 13-05-20, 12:58 AM
آخر رد: سعود
  طريقة جديدة لعمل ريجستر للبرنامج منقول من قناة فوكس التعليمية . asemshahen5 2 3,121 29-11-19, 03:32 AM
آخر رد: علي بنيان
  [C#.NET] سورس كود لعملية تفعيل البرنامج مع احتساب عدد مرات الاستخدام elgokr 5 6,050 08-08-18, 02:51 AM
آخر رد: elgokr

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


يقوم بقرائة الموضوع: