الدرس الخامس مربع الحوار

مرحبا بكم في موقع محمد بشير

مربع الحوار

يعتبر مربع الحوار(Messagebox) هو من أكثر الوظائف والأشياء المستخدمة في كافة لغات البرمجة
وفي هذا الدرس سوف نلقي نظرة حول كيفية كتابتها واستخداماتها المختلفة
أولا الرجاء تحميل ملف البرنامج لهذا الدرس بالضغط على رابط التحميل تحميل ملف مربع الحوار
وبعد فك الضغط سوف نحصل على ملفي lessageBox.txt و compile.bat
ومحتوى الملف الرئيسي لمربع الحوار هو كما يلي

//إعلان الحزم الإفتراضية
using System;
using System.Drawing;
using System.Windows.Forms;

//إعلان الإطار العام للبرنامج
class messageBox : Form
//بداية الإطار العام
{
/* إعلان الحزمة الرئيسية للبرنامج */
public static void Main()
//بداية الحزمة الرئيسية
{
messageBox st = new messageBox(); //إنشاء القاعدة الأساسية للبرنامج
st.Text = "مربع الحوار"; // عنوان البرنامج
st.BackColor = Color.Yellow; // لون خلفية البرنامج

//إظهار مربع الحوار وجعل المؤشر على الزر الثاني وهو زر لا
DialogResult result = MessageBox.Show("هل ترغب في حفظ هذا الملف?",
"حفظ",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button2);

//التعرف على الزر المطلوب
if (result == DialogResult.Yes)
{
//في حالة تم غختيار زر نعم
//هذا الكود لإظهار النصوص على الشاشة
Console.WriteLine("تم غختيار زر نعم");
MessageBox.Show("تم غختيار زر نعم");
}
else if (result == DialogResult.No)
{
//في حالة غختيار زر لا
//هذا الكود لإظهار النصوص على الشاشة
Console.WriteLine("تم غختيار زر لا");
MessageBox.Show("تم غختيار زر لا");
}
else if (result == DialogResult.Cancel)
{
//في حالة غختيار زر إلغاء
//هذا الكود لإظهار النصوص على الشاشة
Console.WriteLine("تم غختيار زر إلغاء");
MessageBox.Show("تم غختيار زر إلغاء");
}

Application.Run(st); //الأمر الخاص بتنفيز البنامج
//نهاية الحزمة الرئيسية للبرنامج
}
} //نهاية الإطار العام للبرنامج ونهاية البرنامج
وصيغة كتابة مربع الحوار هي كما يلي MessageBox.Show("");
وكما تذكرون فإننا استخدمنا مربع الحوار في الدرس الأول وكانت طريقة الكتابة مختلفة قليلا فقد قمنا بكتابتها في الدرس الأول كما يلي
System.Windows.Forms.MessageBox.Show("مرحبا بكم في عالم c#!");
وذلك بإضافة كود System.Windows.Forms قبل كود مربع الحوار وهذه الطريقة ليس خطأ ولكنها تبدو طويلة شيءا ما
وذلك بسبب أننا لم نقم بإعلان وكتابة الحزم الأساسية
وكما تعلمنا في درس إنشاء النوافذ يجب كتابة وإعلان الحزم الإفتراضية وذلك لإنشاء النوافذ واستخدام كافة الوظائف وخصائص النظام
وتعتبر وظيفة مربع الحوار هذه أحد عناصر حزمة System.Windows.Forms
ولهذا السبب وبعد كتابة حزمة System.Windows.Forms في بداية الكود يمكننا إختصار هذا الجزء عند كتابة الوظائف المختلفة
فمثلا بدلا عن كتابة مربع الحوار بصورته الكاملة وهي System.Windows.Forms.MessageBox.Show(""); كما تعلمنا في الدرس الأول
يمكننا إختصار الجزء الخاص بالحزمة الإفتراضية ونقوم بكتابة مربع الحوار كما يلي MessageBox.Show("");
وكما ذكرنا وخاصة بالنسبة للبرامج التي بها نوافذ يمكننا استخدام كلا الطريقتين لكتابة مربع الحوار
وفي هذه السلسلة من الدروس سوف نستخدم الطريقة المختصرة بدون كتابة عنصر الحزمة الإفتراضية
وأيضا تعتبر هذه الطريقة مختصرة جدا لكتابة مربع الحوار وذلك لإظهار الرسائل القصيرة
وفي حقيقة الأمر فإن مربع الحوار يحتوي على الكثير من الخصائص والعناصر ولها كثير من الاستخدامات الأخرى وفي ما يلي إليكم بعض منها
//إظهار مربع الحوار
MessageBox.Show("الرجاء إدخال القيم الصحيحة",
"خطأ",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
أولا ليس هنالك مشكلة في كتابتها في سطر واحد أو أسطر متعددة
وإذاه قمنا بتنفيذ هذا السطر سوف يظهر لنا مربع حوار يحتوي على رسالة تحذيرية وزر لاموافق كما يظهر في شكل آيقونة تحذيرية
ومربع الحوار هذا يحتوي على كثير من العناصر والخصائص نقوم بكتابتها مفصلة بعلامة كوما
وكما هو موضح أعلاه فإن العنصر الأول في هذا المربع هو الجزء الخاص بكتابة نص الرسالة المراد ذكرها وفي هذه الحالة هي الرجاء إدخال القيم الصحيحة
وفي العنصر الثاني نقوم بكتابة العنوان الخاص بمربع الحوار وفي هذه الحالة هو كلمة خطأ
وفي العنصر الثالث نقوم بكتابة أحد ثوابت الخاصة بأزرار مربع الحوار وفي هذه الحالة قمنا بكتابة الثابت Ok
وفي العنصر الذي يليه قمنا بكتابة نوع الآيقونة التي تظهر على مربع الحوار وفي هذه الحالة هي آيقونة تنذير
وفي ما يلي سوف نتعرف على طريقة استخدام مربع الحوار في كيفية طرح الأسألة
وفي المثال التالي سوف نقوم باستخدام صيغة السؤال بنعم ولا وإلغاء وجعل المؤشر على الزر الثاني وفي هذه الحالة هو زر لا
//إظهار مربع الحوار
DialogResult result = MessageBox.Show("هل ترغب في حفظ هذا الملف ?",
"حفظ",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button2);

وفي هذا المثال وفي الجزء الخاص بثوابت أزرار مربع الحوار قمنا بكتابة الثابت YesNoCancel وفي هذه الحالة يظهر لنا ثلاثة أزرار وهي نعم ولا وإلغاء
وسوف نتعرف على المزيد من هذه الثوابت في هذا الدرس إنشاء الله
وأيضا قد قمنا باستخدام آيقون جديدة مختلفة عن الآيقونة المستخدمة في المثال السابق لها وأيضا سوف نتعرف على عدد من هذه الآيقونات في هذا الدرس أيضا
وكما هو موضح في العنصر الأخير في هذا المربع فإننا قمنا بتحديد رقم الزر الذي نود أن نجعل عليه المؤشر
وفي هذه الحالة قمنا بجعل المؤشر على زر لا وهو الزر رقم 2 وذلك على حسب ترتيب الثوابت كما موضح أعلاه
أما إذا أردنا المؤشر على زر نعم نجعل الرقم واحد وفي حالة زر الإلغاء نجعل الرقم هو 3
//وفي ما يلي كيفية التعرف على الزر الذي تم غختياره
if (result == DialogResult.Yes)
{
//تم اختيار زر نعم
Console.WriteLine("تم اختيار زر نعم");
}
else if (result == DialogResult.No)
{
//تم اختيار زر لا
Console.WriteLine("تم اختيار زر لا");
}
else if (result == DialogResult.Cancel)
{
//تم اختيار زر إلغاء
Console.WriteLine("تم اختيار زر إلغاء");
}

وفي ما يلي قائمة بأزرار وآيقونات مربع الحوار
أولا الثوابت المستخدمة مع أزرار مربع الحلوار هي
1. زر OK ويظهر زر OK فقط
2. زر OKCancel ويظهر لنا زر OK وزر Cancel
3. زر AbortRetryIgnore ويظهر لنا زر Abort(الخروج) وزر Retry(إعادة المحاولة) وزر Ignore(تجاهل) ملحوظة مع هذا الزر يكون زر الإلغاء معطلا
4. زر YesNoCancel ويظهر لنا زر Yes وزر No وزر Cancel
5. زر YesNo ويظهر لنا زر Yes وزر No, ملحوظة مع هذا الزر يكون زر الإلغاء معطلا
6. زر RetryCancel ويظهر لنا زر Retry وزر Cancel
وتعتبر هذه الأزرار من الثوابت لذا يجب كتابتها كما هو موضح أعلاه
أما عن الآيقونات المستخدمة في مربع الحوار هي كما يلي
1. آيقونة None وفي هذه الحالة يكون مربع الحوار بدون آيقونة ويصدر من خلالها صوت تحذيري
2. آيقونة Hand وتظهر في شكل دائرة حمراء بها علامة الخروج وتستخدم هذه الآيقونة للتحذير عند وقوع الأخطاء
3. آيقونة Question تظهر لنا علامة الاستفثار وتستخدم هذه الآيقونة عند السؤال عن شيء ما, وفي الفترة الأخيرة لا يفضل استخدام هذه الآيقونة
4. آيقونة Exclamation وتظهر لنا علامة بلون أخضر وتستخدم عادة للتأكيد عند القيام بالعمليات المختلفة, ويفضل استخدام هذه الآيقونة في السنوات الأخيرة
وهنالك العديد من الاستخدامات الأخرى ومن بينها يمكن إظهار رسالة مربع الحوار على اليمين بدلا عن الجانب اليسار ويمكن كتابة ذلك كما يلي
//إظهار الرسالة على الجانب اليمين
DialogResult result = MessageBox.Show("هل ترغب في إعادة حفظ الملف ",
"سؤال",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button2,
MessageBoxOptions.RightAlign);
وباستخدام عنصر أو خيار MessageBoxOptions.RightAlign يمكننا إظهار رسالة مربع الحوار على الجانب الأيمن

وفي نهاية هذا الدرس جعونا نتعرف على كيفية التعرف الزر الذي يتم غختياره
ويمكننا معرفة الزر الذي تم غختياره من خلال التعرف على القيمة الناتجة من خلال تنفيذ مربع الحوار
وللحصول على هذه القيمة وكما هو موضح في المثال أعلاه وهو كما يلي
يتضمن عنصر DialogResult نوع الزر الذي يتم غختياره بصورة تلقائية ومن ثم نقوم بإضافة قيمة هذا العنصر إلى المتغيير والذي سميناه result
وبالتحقق من قيمة المتغيير result يمكننا معرفة نوع الزر الذي تم اختياره
وطريقة كتابتها هي كما يلي
if (result == DialogResult.Yes)
أي بمعنى إذا كانت قيمة المتغيير result تساوي yes نقوم بكتابة العملية المراد تنفيذها في هذه الحالة
وأيضا يمكننا التعرف على بقية الأزرار وذلك بعد استبدال زر yes إلى أي زر آخر
ملحوظة للمقارنة بين شيءين يجب كتابة علامة يساوي مرتين يجب عدم كتابتها لمرة واحدة عند المقارنة بين أمرين أو عمليتين
وللعلم يتم استخدام علامة يساوي مرة واحدة عند إضافة القيم للمتغييرات كما هو موضح في المثال السابق ولا تستخدم للمقارنة بين القيم المختلفة
ونكتفي بهذا القدر لهذا الدرس ونسأل الله لنا ولكم التوفيق
وإذا كانت لديكم أي استفثارات الرجاء كتابتها والتفاعل معنا عبر صفحة المنتدى