کلاس 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.MessageBoxButtons آنرا تغییر دهید.

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

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

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

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

DialogResult result;
result = MessageBox.Show("What is your choice?");

if (result == DialogResult.Yes)
{
   //You pressed the Yes button
}
if (result == DialogResult.No)
{
   //You pressed the No button
}

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

MessageBox.Show("Hello World!", "A Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

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

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

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

MessageBox.Show(
                "Hello World!",
                "A Message",
                MessageBoxButtons.OKCancel,
                MessageBoxIcon.Information,
                MessageBoxDefaultButton.Button1
                );

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

MessageBox.Show(
                "Hello World!",
                "A Message",
                MessageBoxButtons.OKCancel,
                MessageBoxIcon.Information,
                MessageBoxDefaultButton.Button1,
                MessageBoxOptions.RtlReading
                );

MessageBox-in-c#-02

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. yeganeh پاسخ دادن

    با سلام و احترام
    تشکر بابت زحماتی که کشیدی
    من کتاب شما رو که در محیط کنسول اموزش می دادید رو مطالعه کردم ==سی شارپ به زبان ساده
    اما در محیط وین فرم باشه بهتره
    یه پیشنهاد دارم اگه در پایین هر کدام از این درس ها یه لینک دانلود کتاب هر درس رو می گذاشتید خیلی بهتر بود

  2. یونس ابراهیمی پاسخ دادن

    سلام دوست عزیز….ممنون بابت اینکه نظر دادین…همونطور که می دونید فرق محیط کنسول با وین فرم اینه که در محیط کنسول بیشتر تاکید بر یادگیری اصول کدنویسیه. درسته که وین فرم جذاب تره ولی بهتره که با کنسول شروع کنید (البته وحی منزل نیست)…در باره لینک دانلود هم باید عرض کنم که چشم …دارم کل مباحث رو در یک PDF می گنجونم و همشو یکجا واسه دانلود میذارم.

  3. کاوه پاسخ دادن

    سلام. بسیار ممنون و سپاسگذارم از این بابت که این مطالب مفید رو برای استفاده عموم روی وب گذاشتید.
    من یه مشکلی دارم در رابطه با نمایش اطلاعات یک جدول بانک اطلاعاتی بر روی یک فرم. هر کاری میکنم نمایش نمیده و خطا میگیره. به سرور بانک اطلاعاتی وصل میشم ولی اون جدول رو نمیتونم رو فرم نمابش بدم. اگه امکان داره منو راهنمایی کنید.

  4. یونس ابراهیمی پاسخ دادن

    سلام دوست عزیز…لطف دارین
    اگه برنامتون پیغام خطایی میده متنشو بنویسید تا راهنماییتون کنم

  5. ارمین پاسخ دادن

    سلام میشه ۲۱ نوع messagebox رو یاد بدید

  6. مجتبی پاسخ دادن

    آقای ابراهیمی بسیار عالیه
    اگه لطف کنید این مباحث رو پروژه محور پیش ببرید در حد پروژه های ساده و کوچیک محشر میشه کارتون.
    موفق و شاد و سر زنده باشید.

    • یونس ابراهیمی پاسخ دادن

      ممنون دوست عزیز…والا یه کم مشغله دارم… انشالله در اولین فرصت همین کارو می کنم

  7. saman پاسخ دادن

    ببخشد من یه سوال داشتم میشه دستور کامل برای گزاشتن icon هنگام نشان دادن پیام رو بهم بگید با تشکر:)

    • یونس ابراهیمی پاسخ دادن

      سلام دوست خوبم .
      لطفا سوالات خودتون رو در بخش پرسش و پاسخ سایت بپرسید .
      مرسی

    • vahid پاسخ دادن

      آقا سامان برای اینکار باید به این صورت عمل کنی

      messagebox.show("are you want to exit","warning",messageboxbuttons,messageboxicon.select your icon);
  8. محمدابراهیم فلاح پاسخ دادن

    با سلام و عرض خسته نباشید
    واقعا از شما ممنونم بابت مطالب آموزشی خوبتون
    فراگیری خیلی از مباحث رو مدیون شما هستم
    اجرتون با آقا امام زمان

    • یونس ابراهیمی پاسخ دادن

      سلام، ممنون بابت این همه لطفتون

  9. حسین پاسخ دادن

    سلام
    من میخام اطلاعات یک فیلد که توسط کاربر انتخاب شده در messagebox نشون بده هرکاری کردم نشد این کار رو به خاطر این می خام وقتی کاربر میخاد اطلاعات یک نفری رو حذف کنه ازش سوال کنه آیا از حذف اطلاعات فلانی مطئن هستید

    • یونس ابراهیمی پاسخ دادن

      سلام دوست عزیز
      در کل متوجه سوالتون نشدم ، یه نگاهی به بخش ویدئو های سایت بندازین و اگه به جواب نرسیدین تو بخش پرسش و پاسخ به طور کامل و حتی الامکان با عکس سوالتونو مطرح بفرمایید.
      با تشکر

    • vahidbaghi پاسخ دادن

      سلام
      کار خیلی ساده ای هست.داخل messagebox مثلا بنویسید کاربر + و بعد اسم فیلد مورد نظر رو بنویسید.میتونه textbox باشه یا یه سلول از دیتاگرید ویو یا…
      بالاخره یه داده ای رو کاربر وارد کرده و براساس اون سطری از جدولتون رو حذف کردید .خب همون رو تو مسیج باکس بذارید.
      مثلا ازش شماره دانشجویی گرفتید و میخواید وقتی اون سطری که مربوط به شماره دانشجویی هست رو حذف کنه و اسم طرف رو نشون بده.
      اینجا یا شما اطلاعات رو تو دیتاگرید ویو نمایش دادید که از همونجا سلول اسم رو انتخاب میکنه یا ..
      همونطور که آقای ابراهیمی عرض کردند باید با عکس و توضیحات کامل باشه بنابراین تو بخش پرسش و پاسخ مطرح کنید

  10. محمد پاسخ دادن

    چه جوری مسیج باکس از راست می نویسه (فارسی از سمت راست )