العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > روضة دورات لغة الـ CSharp > دورة CSharp 2005 من منتديات المشاغب

دورة CSharp 2005 من منتديات المشاغب مقدم الدورة : مجموعة حماة النهضة . حالة الدورة : انتهت . عدد الدروس : 17 درس

إضافة رد

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 03-22-2010, 05:28 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الخامس عشر : قوائم البرنامج - دورة CSharp 2005

الدرس الخامس عشر


القوائم:

نادراً ما نجد برنامجاً يخلوا من القوائم Menus ..

والقوائم تنقسم إلى ثلاث أنواع :

1 - قوائم ريسية , وهي القوائم التي تأتي عادة أعلى النوافذ

كقائمة "ملف" و "تحرير" في أي نا فذة من نوافذ وندوز



2 - قوائم فرعية Context Menu و هي القوائم التي تنبثق عادة عند النقر على زر الفأرة الأيمن

مثل قائمة التحرير في محررات النصوص



3- قوائم شريط المهام وهي القوائم التي تنبثق من أيقونات البرامج الي لها إختصارات في شريط المهام

كقائمة المسنجر



وطريقة التعامل مع القوائم بأنواعها المختلفة متشابهة جدا في معظم لغات البرمجة ومنها السي شارب

في درسنا اليوم سنضيف قائمة للتطبيق من النوع الثالث

حيث سنضيف إليها جميع وضائف الأزرار في النافذة الرئيسية

وسنضيف أيضاً خاصية إخفاء النافذة الرئيسية , وإضافة إيقونة للتطبيق في شريط المهام

إيقونة شريط المهام Notify Icon

وهي الإيقونات التي تظهر عادة في شريط المهام بجانب الساعة

مثل إيقونات المسنجر و الشبكة وغيرها



إفتح نافذة التطبيق الرئيسية , وإسحب كائن إيقونة التنبية من صندوق الأدوات من جزء Components



ستجد الإيقونة في الشريط الأصفر تحت النافذة , إخترها بالنقر عليها مرة واحدة بزر الفأرة الأيسر



ثم إذهب إلى جدول الخصائص ومن خاصية Icon إختر الإيقونة المناسبة

وغير خاصية Text إلى "مشغل الصوت والفيديو"

وعند تشغيل التطبيق ستلاحظ إيقونة التحذير التي إخترتها موجودة في شريط المهام



الآن سنضيف خاصية إخفاء النافذة للتطبيق وتعليمة إخفاء النافذة بسيطة جداً :
كود PHP:
    this.Hiade(); 
حيث أن this تمثل النافذة الحالية وهي النافذة الرئيسية

بقي أن نجد المكان المناسب لوضع تعليمة الإخفاء

وأفضل مكان لهذه التعليمة هي عند تصغير النافذة الرئيسية للبرنامج

حيث ستختفي النافذة من شريط المهام و لا يظهر منها سوى إيقوانة التنبية التي إخترناها

ولعمل ذلك يجب أن نكتب تعليمة الإخفاء في حدث Resize للنافذة , وهذا الحدث ينطلق عند تغيير حجم النافذة

ولكن هناك مشكلة , المفروض أن نخفي النافذة فقط عندما يتم تصغير النافذة , ولكن هذا الحدث ينطلف عند تصغير أو تكبير النافذة

وبالتالي فيجب أن نضيف جملة شرط if نختبر فيها حالة النافذة فإذا كانت النافذة مصغرة يتم تنفيذ كود الإخفاء

ونختبر حالة النافذة من خلال خاصية WindowsState من خصائص الكائن this والذي يمثل النافذة الرئيسية

فالتعليمة التالية ترجع قيمة تمثل حالة النافذة :
كود PHP:
 
     this
.WindowState 
ونتائج هذه الخاصية الشائعة هي ثلاث نتائج "حالات" :

1- الحالة العادية , وهي حالة تكون فيها النافذة بحجمها الأصلي كما في التصميم وترجع بقيمة :
كود PHP:
     
FormWindowState
.Normal 
2- الحالة المكبرة , وهي حالة تكون فيها النافذة مكبرة ملئ الشاشة من زر التكبير في أعلى النافذة وترجع بقيمة :

كود PHP:
    FormWindowState.Maximized 
3- الحالة المصغرة , وهي حالة تكون فيها النافذة مصغرة وموجودة فقط في شريط المهام وترجع بقيمة :
كود PHP:
     FormWindowState.Minimized 
والحالة التي تهمنا هي آخر حالة , حيث سنختبر خاصية حالة النافذة WindowsState فإذا كانت Minimized فيتم تنفيذ كود الإخفاء

إذهب إلى نافذة التصميم , وإختر النافذة الرئيسية بالنقر مرة واحدة على مكان فارغ بالنافذة

ثم إذهب إلى جدول الخصائص جزء الأحداث , وأنقر مزدوجاً على حدث Resize



ستنتقل إلى الكود , لنكتب هناك كود الإخفاء مع جملة if :
كود PHP:
                 if(this.WindowState == FormWindowState.Minimized)
            {
                
this.Hide();
            } 
السطر الأول يمثل جملة شرطية تختبر حالة النافذة إذا كانت مصغرة Minimized أم لا

فإذا كانت مصغرة يتم تنفيذ الكود بين الحاصرتين وهو تعليمة الإخفاء

إنتهينا من خاصية الإخفاء , بقي أن نضيف خاصية إعادة الإظهار

وتعليمة الإظهار بسيطة أيضاً , وقد ذركناها في دروس سابقة :
كود PHP:
     this.Show(); 
حيث أن this يمثل النافذة الرئيسية

ولكن هذا الكود لا يكفي فهو يظهر النافذة على شريط المهام , ولا يقوم بتكبيرها

وبالتالي يجب إضافة كود تكبير النافذة , وهو تغيير لحالة النافذة WindowsState إلى Maximized

أي أن تعليمة تكبير النافذة كاملة هي
كود PHP:
                 this.WindowState FormWindowState.Normal
تعليمة الإظهار والتكبير سنضعها كما قلنا في حدث النقر المزدوج على إيقونة التنبية

إذهب إلى التصميم وأنقر مزدوجاً على إيقونة التحذير notifyIcon1 في الشريط الأصفر أسفل النافذة ستنتقل إلى الكود

أكتب هناك تعليمات الإظهار والتكبير :
كود PHP:
                 this.Show();
            
this.WindowState FormWindowState.Normal
الآن شغل البرنامج وصغر النافذة , ستختفي النافذة من شريط المهام , وتبقى فقط إيقونة التحذير

وإذا نقرت عليها مزدوجاً ستظهر النافذة مرة أخرى .

القوائم الفرعية :

أحياناً نحتاج إلى التفاعل مع البرنامج وهو مخفي , كأن نوقف التشغيل مثلاً

في حالة البرنامج الحالية , يجب أولاً إظهار النافذة الرئيسية بالنقر مزدوجاً على إيقونة التحذير

ثم عندما تظهر النافذة نختر زر الإيقاف ..

يمكن إختصار هذا الإجراء بإضافة قائمة على إيقرنة التحذير , تحتوي على بند "إيقاف"

وبالتالي يمكن إيقاف التشغيل بدون إظهار النافذة الرئيسية

سنضيف إلى البرنامج كائن القائمة التي ستحتوي على جميع أوامر التطبيق

إذهب إلى التصميم , وإسحب كائن القائمة الفرعية من صندوق الأدوات :



ستجد كائن القائمة أضيف إلى الشريط الأصفر أسفل النافذة

إختر القائمة بالنقر عليها مرة واحدة , ستلاحظ أن شكل النافذة الرئيسية تغير و أضيفت إليها قائمة تحت شريط العنوان



هنا ستقوم بتحرير عناصر القائمة , ولإضافة عنصر جديد للقائمة أنقر مزدوجاً على المربع الأبيض الكتوب عليه Type Here

وأكتب هناك " إيقاف التشغيل "



بهذا تكون قد أضفت عنصر جديد للقائمة وهو عنصر إيقاف التشغيل

أضف عنصر جديد تحت العنصر السابق وليكن " إنهاء البرنامج "



الآن انقر في أي مكان فارغ في النافذة , ثم إخرت مرة أخري كائن القائمة من الشريط الأصفر في الأسفل

ولكن هذه المرة سنقوم بإضافة كود إلى كل عنصر من عناصر القائمة , إنقر مزدوجاً على عنصر " إيقاف التشغيل"

ستنتقل إلى الكود , لتكتب هناك تعليمة إيقاف التشغيل وهي نفس التعليمة في زر إيقاف التشغيل في النافذة الرئيسية من الدروس السابق :
كود PHP:
                 StopFile(); 
ثم إذهب إلى التصميم مرة أخرى و أنقر مزدوجاً على عنصر " إنهاء البرنامج"

وأكتب هناك كود إغلاق البرنامج الذي عرفناه من الدروس السابقة :
كود PHP:
                 System.Environment.Exit(0); 
بقي أن نربط القائمة بإقونة التحذير , إذهب إلى التصميم و إختر إيقونة التحذير notifyIcon1 من الشريط الأصفر بالأسفل

ومن خاصية ContextMenuStrip إختر contextMenuStrip1



الآن جرب تشغيل البرنامج , و صغر النافذة الرئيسية و أنقر بزر الفارة الأيمن على زر التحذير

ستظهر لك القائمة الفرعية



الواجب

أضف عناصر أخري للقائمة تحتوي على جميع خصائص البرنامج

تشغيل , إيقاف مؤقت , تقديم , تأخير , فتح ملفات , التحكم بالألبومات , ملئ الشاشة, ....

.نهاية الدرس الخامس عشر .


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الثامن : المصفوفات والقوائم - دورة CSharp 2005 khaledbelal دورة CSharp 2005 من منتديات المشاغب 0 03-22-2010 03:47 PM
الدرس الخامس : تشغيل ملف فيديو - دورة CSharp 2005 khaledbelal دورة CSharp 2005 من منتديات المشاغب 0 03-22-2010 03:26 PM
الدرس الرابع : الإجراءات والدوال - دورة CSharp 2005 khaledbelal دورة CSharp 2005 من منتديات المشاغب 0 03-19-2010 03:39 PM
الدرس الثالث : الجمل الشرطيه - دورة CSharp 2005 microtop دورة CSharp 2005 من منتديات المشاغب 1 03-16-2010 06:19 PM
الدرس الثاني : المتغيرات - دورة CSharp 2005 khaledbelal دورة CSharp 2005 من منتديات المشاغب 0 03-12-2010 03:56 PM

استضافة الحياة

الساعة الآن 03:33 PM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz