共用方式為


如何開啟訊息方塊 (WPF .NET)

「訊息方塊」是一個對話方塊,用於快速顯示資訊和選擇性地允許使用者做出決策。 訊息方塊的存取權是由 MessageBox 類別提供。 訊息方塊會「強制」顯示。 而顯示訊息方塊的程式碼會暫停,直到使用者使用關閉按鈕或回應按鈕關閉訊息方塊為止。

下圖示範訊息方塊的組件:

顯示 WPF 訊息方塊組件的圖表。

  • 包含標題的標題列 (1)。
  • 關閉按鈕 (2)。
  • 圖示 (3)。
  • 向使用者顯示的訊息 (4)。
  • 回應按鈕 (5)。

若要呈現或收集複雜的資料,對話方塊可能比訊息方塊更合適。 如需詳細資訊,請參閱對話方塊概觀

顯示訊息方塊

若要建立訊息方塊,您可以使用 MessageBox 類別。 MessageBox.Show 方法可讓您設定訊息方塊的文字、標題、圖示和按鈕 (如下列程式碼所示):

string messageBoxText = "Do you want to save changes?";
string caption = "Word Processor";
MessageBoxButton button = MessageBoxButton.YesNoCancel;
MessageBoxImage icon = MessageBoxImage.Warning;
MessageBoxResult result;

result = MessageBox.Show(messageBoxText, caption, button, icon, MessageBoxResult.Yes);
Dim messageBoxText As String = "Do you want to save changes?"
Dim caption As String = "Word Processor"
Dim Button As MessageBoxButton = MessageBoxButton.YesNoCancel
Dim Icon As MessageBoxImage = MessageBoxImage.Warning
Dim result As MessageBoxResult

result = MessageBox.Show(messageBoxText, caption, Button, Icon, MessageBoxResult.Yes)

MessageBox.Show 方法多載提供設定訊息方塊的方式。 這些選項包括:

  • 標題列標題
  • 訊息圖示
  • 訊息文字
  • 回應按鈕

以下是使用訊息方塊的一些更多範例。

  • 顯示警示。

    MessageBox.Show("Unable to save file, try again.");
    
    MessageBox.Show("Unable to save file, try again.")
    

    先前的程式碼顯示如下圖所示的訊息方塊:

    未設定選項的 WPF 簡單訊息方塊。

    最好使用訊息方塊類別所提供的選項。 使用與之前相同的警示,設定更多選項,使其更具視覺吸引力:

    MessageBox.Show("Unable to save file, try again.", "Save error", MessageBoxButton.OK, MessageBoxImage.Error);
    
    MessageBox.Show("Unable to save file, try again.", "Save error", MessageBoxButton.OK, MessageBoxImage.Error)
    

    先前的程式碼顯示如下圖所示的訊息方塊:

    WPF 的警告訊息方塊,其中包含圖示、標題和文字。

  • 顯示警告。

    MessageBox.Show("If you close the next window without saving, your changes will be lost.", "Configuration", MessageBoxButton.OK, MessageBoxImage.Warning);
    
    MessageBox.Show("If you close the next window without saving, your changes will be lost.", "Configuration", MessageBoxButton.OK, MessageBoxImage.Warning)
    

    先前的程式碼顯示如下圖所示的訊息方塊:

    WPF 的簡單訊息方塊,其中顯示警告圖示。

  • 詢問使用者問題。

    if (MessageBox.Show("If the file save fails, do you want to automatically try again?",
                        "Save file",
                        MessageBoxButton.YesNo,
                        MessageBoxImage.Question) == MessageBoxResult.Yes)
    {
        // Do something here
    }
    
    If MessageBox.Show("If the file save fails, do you want to automatically try again?",
                       "Save file",
                       MessageBoxButton.YesNo,
                       MessageBoxImage.Question) = MessageBoxResult.Yes Then
    
        ' Do something here
    
    End If
    

    先前的程式碼顯示如下圖所示的訊息方塊:

    WPF 的簡單訊息方塊,對使用者提示是或否的問題。

處理訊息方塊回應

MessageBox.Show 方法會顯示訊息方塊並傳回結果。 結果會指出使用者關閉訊息方塊的方式:

result = MessageBox.Show(messageBoxText, caption, button, icon, MessageBoxResult.Yes);

switch (result)
{
    case MessageBoxResult.Cancel:
        // User pressed Cancel
        break;
    case MessageBoxResult.Yes:
        // User pressed Yes
        break;
    case MessageBoxResult.No:
        // User pressed No
        break;
}
result = MessageBox.Show(messageBoxText, caption, Button, Icon, MessageBoxResult.Yes)

Select Case result
    Case MessageBoxResult.Cancel
        ' User pressed Cancel
    Case MessageBoxResult.Yes
        ' User pressed Yes
    Case MessageBoxResult.No
        ' User pressed No
End Select

當使用者按下訊息方塊底部的按鈕時,就會傳回對應的 MessageBoxResult。 不過,如果使用者按下 ESC 鍵,或按下 [關閉] 按鈕 (訊息方塊圖例中的 #2),訊息方塊的結果會根據按鈕選項而有所不同:

按鈕選項 ESC 或 [關閉] 按鈕結果
OK OK
OKCancel Cancel
YesNo ESC 鍵盤快速鍵和 [關閉] 按鈕停用。 使用者必須按 [是] 或 [否]
YesNoCancel Cancel

如需使用訊息方塊的詳細資訊,請參閱 MessageBoxMessageBox 範例

另請參閱