المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الخامس عشر : قوائم البرنامج - دورة CSharp 2005


khaledbelal
03-22-2010, 05:28 PM
الدرس الخامس عشر


القوائم:

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

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

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

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

http://www.7oma.com/csharp/images/image15-1.jpg

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

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

http://www.7oma.com/csharp/images/image15-2.JPG

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

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

http://www.7oma.com/csharp/images/image15-3.JPG

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

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

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

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

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

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

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

http://www.7oma.com/csharp/images/image15-4.JPG

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

http://www.7oma.com/csharp/images/image15-5.JPG

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

http://www.7oma.com/csharp/images/image15-6.JPG

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

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

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

http://www.7oma.com/csharp/images/image15-7.JPG

الآن سنضيف خاصية إخفاء النافذة للتطبيق وتعليمة إخفاء النافذة بسيطة جداً :

this.Hiade();

حيث أن this تمثل النافذة الحالية وهي النافذة الرئيسية

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

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

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

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

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

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

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

فالتعليمة التالية ترجع قيمة تمثل حالة النافذة :


this.WindowState

ونتائج هذه الخاصية الشائعة هي ثلاث نتائج "حالات" :

1- الحالة العادية , وهي حالة تكون فيها النافذة بحجمها الأصلي كما في التصميم وترجع بقيمة :


FormWindowState.Normal

2- الحالة المكبرة , وهي حالة تكون فيها النافذة مكبرة ملئ الشاشة من زر التكبير في أعلى النافذة وترجع بقيمة :


FormWindowState.Maximized

3- الحالة المصغرة , وهي حالة تكون فيها النافذة مصغرة وموجودة فقط في شريط المهام وترجع بقيمة :

FormWindowState.Minimized

والحالة التي تهمنا هي آخر حالة , حيث سنختبر خاصية حالة النافذة WindowsState فإذا كانت Minimized فيتم تنفيذ كود الإخفاء

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

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

http://www.7oma.com/csharp/images/image15-8.JPG

ستنتقل إلى الكود , لنكتب هناك كود الإخفاء مع جملة if :

if(this.WindowState == FormWindowState.Minimized)
{
this.Hide();
}

السطر الأول يمثل جملة شرطية تختبر حالة النافذة إذا كانت مصغرة Minimized أم لا

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

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

وتعليمة الإظهار بسيطة أيضاً , وقد ذركناها في دروس سابقة :

this.Show();

حيث أن this يمثل النافذة الرئيسية

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

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

أي أن تعليمة تكبير النافذة كاملة هي

this.WindowState = FormWindowState.Normal;

تعليمة الإظهار والتكبير سنضعها كما قلنا في حدث النقر المزدوج على إيقونة التنبية

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

أكتب هناك تعليمات الإظهار والتكبير :

this.Show();
this.WindowState = FormWindowState.Normal;

الآن شغل البرنامج وصغر النافذة , ستختفي النافذة من شريط المهام , وتبقى فقط إيقونة التحذير

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

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

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

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

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

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

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

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

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

http://www.7oma.com/csharp/images/image15-9.JPG

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

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

http://www.7oma.com/csharp/images/image15-10.JPG

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

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

http://www.7oma.com/csharp/images/image15-11.JPG

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

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

http://www.7oma.com/csharp/images/image15-12.JPG

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

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

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

StopFile();

ثم إذهب إلى التصميم مرة أخرى و أنقر مزدوجاً على عنصر " إنهاء البرنامج"

وأكتب هناك كود إغلاق البرنامج الذي عرفناه من الدروس السابقة :

System.Environment.Exit(0);

بقي أن نربط القائمة بإقونة التحذير , إذهب إلى التصميم و إختر إيقونة التحذير notifyIcon1 من الشريط الأصفر بالأسفل

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

http://www.7oma.com/csharp/images/image15-13.JPG

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

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

http://www.7oma.com/csharp/images/image15-14.JPG

الواجب

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

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

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