Jak otworzyć pole komunikatu (WPF .NET)

Okno dialogowe to okno dialogowe, które służy do szybkiego wyświetlania informacji i opcjonalnie umożliwia użytkownikom podejmowanie decyzji. Dostęp do pola komunikatu jest dostarczany przez klasę MessageBox . Zostanie wyświetlone modalnie okno komunikatu. Kod wyświetlający okno komunikatu jest wstrzymany, dopóki użytkownik nie zamknie pola komunikatu za pomocą przycisku zamknięcia lub przycisku odpowiedzi.

Poniższa ilustracja przedstawia części pola komunikatu:

A figure that shows the parts of a message box for WPF.

  • Pasek tytułu z podpis (1).
  • Przycisk zamknięcia (2).
  • Ikona (3).
  • Komunikat wyświetlany użytkownikowi (4).
  • Przyciski odpowiedzi (5).

W przypadku prezentowania lub zbierania złożonych danych okno dialogowe może być bardziej odpowiednie niż okno dialogowe. Aby uzyskać więcej informacji, zobacz Omówienie okien dialogowych.

Wyświetlanie okna komunikatu

Aby utworzyć pole komunikatu MessageBox , należy użyć klasy . Metoda MessageBox.Show umożliwia skonfigurowanie tekstu pola komunikatu, tytułu, ikony i przycisków pokazanych w następującym kodzie:

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)

Przeciążenia MessageBox.Show metody zapewniają sposoby konfigurowania pola komunikatu. Dostępne są następujące opcje:

  • Pasek tytułu podpis
  • Ikona wiadomości
  • Tekst wiadomości
  • Przyciski odpowiedzi

Poniżej przedstawiono kilka przykładów użycia pola komunikatu.

  • Wyświetlanie alertu.

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

    Poprzedni kod wyświetla pole komunikatu podobne do poniższego obrazu:

    A simple message box for WPF that has no options configured.

    Dobrym pomysłem jest użycie opcji udostępnianych przez klasę pola komunikatów. Używając tego samego alertu co poprzednio, ustaw więcej opcji, aby uczynić go bardziej atrakcyjnym wizualnie:

    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)
    

    Poprzedni kod wyświetla pole komunikatu podobne do poniższego obrazu:

    A warning message box for WPF that has an icon, caption, and text.

  • Wyświetl ostrzeżenie.

    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)
    

    Poprzedni kod wyświetla pole komunikatu podobne do poniższego obrazu:

    A simple message box for WPF that has displays a warning icon.

  • Zadaj użytkownikowi pytanie.

    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
    

    Poprzedni kod wyświetla pole komunikatu podobne do poniższego obrazu:

    A simple message box for WPF that prompts the user with a yes or no question.

Obsługa odpowiedzi w polu komunikatu

Metoda MessageBox.Show wyświetla pole komunikatu i zwraca wynik. Wynik wskazuje, jak użytkownik zamknął okno komunikatu:

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

Gdy użytkownik naciśnie przyciski w dolnej części pola komunikatu, zostanie zwrócony odpowiedni MessageBoxResult . Jeśli jednak użytkownik naciśnie klawisz ESC lub naciśnie przycisk Zamknij (#2 na ilustracji pola komunikatu), wynik pola komunikatu różni się w zależności od opcji przycisku:

Opcje przycisków Wynik przycisku ESC lub Zamknij
OK OK
OKCancel Cancel
YesNo Skrót klawiaturowy ESC i wyłączony przycisk Zamknij . Użytkownik musi nacisnąć przycisk Tak lub Nie.
YesNoCancel Cancel

Aby uzyskać więcej informacji na temat korzystania z pól komunikatów, zobacz MessageBox i przykład MessageBox.

Zobacz też