當在執行視窗程式時,若發生錯誤操作,經常會在桌面上出現相關錯誤或警告訊息的對話方塊,以提醒使用者注意。在 C# 可使用 .NET Framework 類別庫中的 MessageBox.Show() 來製作可顯示訊提的對話方塊,等待使用者按下按鈕,電腦就會回傳一個整數值指示使用者按下哪個按鈕以作為程式流程的依據。
MessageBox 所提供的 Show 可產生一個包含訊息、按鈕、特殊符號的對話方塊,用來告知和提示使用者。
MessageBox.Show([Object], Message, Caption, MessageButtons, MessageBoxIcon, MessageBoxDefaultButton, NessageBoxOptions);
Object:在指定物件前面顯示訊息方塊,可省略不寫。
Message:用來顯示警告或提示使用者的文字。
Caption:為訊息方塊標題欄上的名稱。
MessageButtons:用來指定哪種按鈕要顯示在訊息方塊中。
| MessageBoxIcon 小圖示列舉常數(Enumeration) | 說明 |
|---|
MesageBoxButtions.OK | 
MessageBoxButtons.OKCancel | 
MessageBoxButtons.AbortRetryIgnore | 
MessageBoxButtons.YesNoCancel | 
MessageBoxButtons.YesNo | 
MessageBoxButtons.RetryCancel | 
MessageBoxIcon:指定用哪種小圖示顯示在訊息方塊中。
| MessageBoxIcon 列舉常數(Enumeration) | 說明 |
|---|
MessageBoxIcon.Asterisk | 
MessageBoxIcon.Error | 
MessageBoxIcon.Exclamation | 
MessageBoxIcon.Hand | 
MessageBoxIcon.Information | 
MessageBoxIcon.None | 無圖示
MessageBoxIcon.Question | 
MessageBoxIcon.Stop | 
MessageBoxIcon.Warning | 
MessageBoxDefaultButton:指定訊息方塊使用哪個按鈕為預設按鈕。
| MessageBoxDefaultButton | 說明 |
|---|
MessageBoxDefaultButton.Button1 | 將 MessageBox 中第一個按鈕設成預設按鈕,該按鈕四周會出現虛框。
MessageBoxDefaultButton.Button2 | 將 MessageBox 中第二個按鈕設成預設按鈕,該按鈕四周會出現虛框。
MessageBoxDefaultButton.Button3 | 將 MessageBox 中第三個按鈕設成預設按鈕,該按鈕四周會出現虛框。
MessageBoxOptions:指定訊息方塊使用的顯示及關聯的選項
| MessageBoxOptions | 說明 |
|---|
MessageBoxOptions.DefaultDesktopOnly | 訊息方塊景顯示在預設的桌面。
MessageBoxOptions.RightAlign | 標題欄文字靠右對齊。
MessageBoxOptions.RtlReading | 訊息方塊的文字是以從右向左的讀取順序顯示。
MessageBoxOptions.ServiceNotification | 訊息方塊僅顯示在使用中的桌面上。
傳回值:為按鈕傳回值。當呼叫 MessageBox.Show 時,由出現的對話方塊中,在下表中按其中一個按鈕時,會以下表的 DialogResult 列舉型別傳回。可宣告一個變數具有 DialogResult 型別,再將 MessageBox.Show 方法的按鈕結果指定給此變數,並判斷使用者是按下對話方塊的哪個按鈕。
DialogResult res;
res = MessageBox.Show(...);
if (res == DialogResult.OK)
{
// 按 OK 執行的事
}
else
{
// 按其他按鈕執行的事
}
| MessageBox.Show 方法傳回列舉值(Enum) | 說明 | 按鈕 |
|---|
DialogResult.OK | 1 | 
DialogResult.Cancel | 2 | 
DialogResult.Abort | 3 | 
DialogResult.Retry | 4 | 
DialogResult.Ignore | 5 | 
DialogResult.Yes | 6 | 
DialogResult.No | 7 | 
DialogResult.None | |
2023鐵人賽