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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مشروع] حساب الوقت (دخول و خروج الموظف) #C Kamil 0 316 05-01-24, 08:16 PM
آخر رد: Kamil
Video [درس فيديو] شرح أبسط طريقة لعمل تطبيق محادثة C# Xamarin خطوة بخطوة + كود rabia al hamdani 0 1,195 20-03-23, 01:17 AM
آخر رد: rabia al hamdani
Video [درس فيديو] أبسط طريقة لعمل تطبيق محادثة C# Xamarin rabia al hamdani 0 865 13-03-23, 02:31 AM
آخر رد: rabia al hamdani
Lightbulb [نقاش] محتاج رايكم في البرنامج الي شغال عليه الحاجات السلبية mazentq 3 2,137 22-04-22, 02:51 AM
آخر رد: كريم الفقى
Video [درس فيديو] 3- ربط البرنامج المصمم بلغه البرمجة #C مع قواعد البيانات Sqlserver الجزء الثالث rabia al hamdani 0 1,849 20-02-22, 03:18 AM
آخر رد: rabia al hamdani
Video [درس فيديو] 2- شرح ربط البرنامج المصمم بلغه البرمجة #C مع قواعد البيانات Sqlserver الجزء الثاني rabia al hamdani 0 1,240 20-02-22, 03:13 AM
آخر رد: rabia al hamdani
Video [درس فيديو] 1- شرح ربط البرنامج المصمم بلغه البرمجة #C مع قواعد البيانات Sqlserver الجزء الاول rabia al hamdani 0 1,269 20-02-22, 03:11 AM
آخر رد: rabia al hamdani
  [سؤال] طلب طريقة طباعة أكثر من فاتورة في صفحة واحدة m4n2net2000 0 1,500 12-10-20, 10:34 AM
آخر رد: m4n2net2000
  [مشروع] سورس كود مسبحة قرئانية مع ظهور الوقت والتاريخ واليوم مع منبه سوري حر 3 4,360 13-05-20, 06:14 PM
آخر رد: alsouf
  [مشروع] التلاعب بالاسم [يوجد كود منع تكرار تشغيل البرنامج ضمن كلاس Program.cs] سعود 0 1,792 13-05-20, 12:58 AM
آخر رد: سعود

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


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