کلاس MessageBox

System.Windows.Forms.MessageBox يک کلاس استاتيک است که از آن براي نشان دادن يک پيغام فوري، اطلاعات و يا يک هشدار به کاربران استفاده می‌شود. براي نشان دادن يک پيغام به راحتي می‌توان از متد ()Show کلاس MessageBox استفاده نماييد. ساده‌ترین حالت متد ()Show اين است که يک رشته متني را به عنوان آرگومان قبول می‌کند و آن را نمايش می‌دهد.

MessageBox.Show("Hello World!");

message-box-12-19-10-001
شما همچنين می‌توانید به راحتي و با استفاده از يکي ديگر از سربارگذاريهاي متد ()Show يک عنوان براي جعبه پيامتان بگذاريد.

MessageBox.Show("Hello World!", "A Message");

message-box-12-19-10-01
اگر نخواهيد از دکمه OK پيشفرض جعبه متن استفاده کنيد می‌توانید با استفاده از System.Windows.Forms.MessageBoxButton آنرا تغيير دهيد.

MessageBox.Show("Hello World!", "A Message", MessageBoxButton.OKCancel);

message-box-12-19-10-02
جدول زير اعضاي MessageBoxButton را نشان می‌دهد :

عضو دکمه‌هایی که نمايش می‌دهد
AbortRetryIgnore Abort, Retry, Ignore
OK OK
OKCancel OK, Cancel
RetryCancel Retry, Cancel
YesNo Yes, No
YesNoCancel Yes, No, Cancel

متد ()Show يک مقدار از نوع شمارشی، System.Windows.Forms.MessageBoxResult را بر می‌گرداند. تشخيص اينکه چه دکمه‌ای توسط شما در جعبه متن فشار داده می‌شود مفيد است. به عنوان مثال اگر بر روي دکمه Yes در جعبه پيام کليک کنيد، متد ()Show مقدار MessageBoxResult.Yes را بر می‌گرداند.

MessageBoxResult result;
result = MessageBox.Show("What is your choice?", "A Message", MessageBoxButton.OKCancel);

if (result == MessageBoxResult.OK)
{
   //You pressed the Yes button
}
if (result == MessageBoxResult.Cancel)
{
   //You pressed the No button
}

لطفاً به اين نکته توجه کنيد که کلاس Form يک خاصيت MessageBoxResult دارد و آن را با System.Windows.Forms.MessageBoxResultاشتباه نگيريد. می‌توان به جعبه پيام براي نشان دادن معني و مفهوم آن يک آيکون اضافه کرد. می‌توانید اين کار را با استفاده از نوع شمارشي MessageBoxImage انجام دهيد.

MessageBox.Show("Hello World!", "A Message", MessageBoxButton.OKCancel, MessageBoxImage.Information);

در جدول زير انواع آيکونها و کاربرد آنها در جعبه پيام نشان داده شده است :

آيکون عضو استفاده
icon-information Asterisk
Information
براي نشان دادن اطلاعات به کاربر
icon-error Error
Hand
Stop
براي نشان دادن يک پيغام خطا
icon-warning Exclamation
Warning
براي نشان دادن يک هشدار
icon-question Question براي سؤال کردن از کاربر

اگر بخواهيد که جعبه متن هيچ گونه آيکوني نداشته باشد می‌توانید از MessageBoxImage.None استفاده کنيد. نوع شمارشي MessageBoxResult دکمه پيشفرضي را که هنگام فشرده شدن دکمه Enter بايد عمل کند را تعيين می‌کند و فقط داراي سه عضو است Button2 ،Button1 و Button3. به عنوان مثال در جعبه متني که داراي دکمه‌های OK و Cancel است استفاده از MessageBoxResult.Button1 باعث می‌شود که دکمه OK به صورت پيشفرض درآيد. يعني هنگامي که جعبه متن نشان داده شد با زدن دکمه Enter، دکمه OK فشرده می‌شود :

MessageBox.Show(
                "Hello World!",
                "A Message",
                MessageBoxButton.OKCancel,
                MessageBoxImage.Information,
                MessageBoxResult.OK
                );

MessageBox-in-c#-01
همانطور که در کد بالا مشاهده می‌کنید رنگ دکمه OK نسبت به دکمه Cancel متفاوت است که نشان دهنده پیشفرض بودن این دکمه است. متد ()Show دارای پارامتر دیگری از نوع شمارشی MessageBoxOptions است که دارای مقادیر مختلفی است. یکی از این مقادیر RtlReading بوده که از آن برای راست به چپ کردن پیغام استفاده می‌شود :

MessageBox.Show(
                "Hello World!",
                "A Message",
                MessageBoxButton.OKCancel,
                MessageBoxImage.Information,
                MessageBoxResult.OK,
                MessageBoxOptions.RtlReading
                );

MessageBox-in-c#-02