메시지 상자를 여는 방법(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 샘플을 참조하세요.

참고 항목