کلاس MessageBox
System.Windows.Forms.MessageBox يک کلاس استاتيک است که از آن براي نشان دادن يک پيغام فوري، اطلاعات و يا يک هشدار به کاربران استفاده میشود. براي نشان دادن يک پيغام به راحتي میتوان از متد ()Show کلاس MessageBox استفاده نماييد. سادهترین حالت متد ()Show اين است که يک رشته متني را به عنوان آرگومان قبول میکند و آن را نمايش میدهد.
MessageBox.Show("Hello World!");
شما همچنين میتوانید به راحتي و با استفاده از يکي ديگر از سربارگذاريهاي متد ()Show يک عنوان براي جعبه پيامتان بگذاريد.
MessageBox.Show("Hello World!", "A Message");
اگر نخواهيد از دکمه OK پيشفرض جعبه متن استفاده کنيد میتوانید با استفاده از System.Windows.Forms.MessageBoxButton آنرا تغيير دهيد.
MessageBox.Show("Hello World!", "A Message", MessageBoxButton.OKCancel);
جدول زير اعضاي 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);
در جدول زير انواع آيکونها و کاربرد آنها در جعبه پيام نشان داده شده است :
آيکون | عضو | استفاده |
Asterisk Information |
براي نشان دادن اطلاعات به کاربر | |
Error Hand Stop |
براي نشان دادن يک پيغام خطا | |
Exclamation Warning |
براي نشان دادن يک هشدار | |
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 );
همانطور که در کد بالا مشاهده میکنید رنگ دکمه OK نسبت به دکمه Cancel متفاوت است که نشان دهنده پیشفرض بودن این دکمه است. متد ()Show دارای پارامتر دیگری از نوع شمارشی MessageBoxOptions است که دارای مقادیر مختلفی است. یکی از این مقادیر RtlReading بوده که از آن برای راست به چپ کردن پیغام استفاده میشود :
MessageBox.Show( "Hello World!", "A Message", MessageBoxButton.OKCancel, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.RtlReading );
سپاس فراوان
سلام خسته نباشید
لپتاپم مک بوک هست و ویژوال استودیو نسخه مک رو استفاده میکنم ولی در زبان #c دستور MessageBox را نمیپذیرد. باید چکار کنم؟
با سلام من از visual studio 2015 استفاده می کنم و نمی تونم از دستور MessageBoxImage.Information,
MessageBoxResult.OK, استفاده کنم به چه علت؟
سلام دوست عزیز
این مبحث WPF ه و شما احتمالا برنامه Windows Form ایجاد کردین. باید لینک زیر رو بخونید
کلاس MessageBox