본문 바로가기
C#

[C#][.NET] MessageBox 사용법

by teamnova 2024. 4. 3.

오늘은 윈도우 앱에서 메시지 박스 사용법을 알아보겠습니다.

 

MessageBox는 Show라는 메서드를 갖고 있는데 이는 사용자에게 메시지를 보여주는 데 사용되며, 다양한 매개변수를 통해 메시지 박스의 모양과 기능을 조정할 수 있습니다.

이때 메시지 박스에 다양한 버튼을 생성할 수 있고 그 버튼에 맞게 프로그램이 동작하게 개발할 수도 있습니다.

 

메시지 박스에는 다양한 속성들이 있습니다.

먼저 메시지 박스는 Show 메서드의 매개변수들을 사용해 원하는 값들을 표현할 수 있고 거기에는 message, caption, buttons, icon, defaultButton, options등이 있습니다.

 

message : 사용자에게 보여줄 메시지를 입력하는 매개변수입니다.

caption : 사용자에게 보여줄 메시지박스의 제목을 입력하는 매개변수입니다.

buttons : 사용자에게 보여줄 버튼들을 정하는 매개변수로 OK(확인), OKCancel(확인, 취소), AbortRetryIgnore(중단, 재시도, 무시), YesNoCancel(예, 아니요, 취소), YesNo(예, 아니요), RetryCancel(재시도, 취소) 이 있습니다.

icon : 사용자에게 메시지와 함께 메시지의 내용을 함축적으로 표시할 수 있는 아이콘을 정하는 매개변수로 None(아이콘 없음), Error/Stop/Hand(빨간색 X), Question(질문성 물음표), Exclamation/Warning(느낌표), Information/Asterisk(정보성 물음표)

defaultButton : 기본적으로 포커스를 줄 버튼을 지정할 수 있는 매개변수로  Button1, Button2, Button3가 있습니다.

options : DefaultDesktopOnly(모달리스로 서비스에서 주로 사용), RightAlign(메시지 텍스트를 텍스트 박스 오른쪽 정렬), RtlReading(오른쪽에서 왼쪽으로 읽는 문화권에서 사용하는 옵션), ServiceNotification(메시지박스가 포그라운드 및 최상위로 표시되게 한다.)

 

다음은 메시지 박스 사용법입니다.

기본 메시지 박스

MessageBox.Show("이것은 기본 메시지 박스입니다.");

 

제목이 있는 메시지 박스

MessageBox.Show("메시지를 확인해 주세요.", "알림");

 

버튼 옵션을 포함한 메시지 박스

MessageBox.Show("변경 사항을 저장하시겠습니까?", "저장 확인", MessageBoxButtons.YesNoCancel);

 

아이콘과 버튼 옵션이 있는 메시지 박스

MessageBox.Show("파일을 찾을 수 없습니다.", "에러", MessageBoxButtons.OK, MessageBoxIcon.Error);

 

기본 버튼을 지정한 메시지 박스

MessageBox.Show("계속 진행하시겠습니까?", "진행 확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

 

각 버튼 입력에 대한 사용자 지정 기능

- MessageBox.Show는 DialogResult를 반환하고 그 객체를 사용해 각 버튼 입력에 대한 기능을 구현할 수 있습니다.

DialogResult result = MessageBox.Show("프로그램을 종료하시겠습니까?", "종료 확인", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
    // 사용자가 '예'를 클릭한 경우 앱 종료
    Application.Exit();
}

 

 

이 기능을 이전 예제에 활용해보겠습니다.

https://stickode.tistory.com/1132

 

사용자가 숫자를 입력하지 않고 = 버튼을 눌렀을 때 경고를 주는 메시지박스를 띄워보겠습니다.

// = 버튼 클릭 메소드
private void EquallBtn_Click(object sender, EventArgs e)
{
    double result = 0;
    if (num1 != null && num2 != null)
    {
        switch (lastOperation)
        {
            case '+':
                result = double.Parse(num1) + double.Parse(num2);
                break;
            case '-':
                result = double.Parse(num1) - double.Parse(num2);
                break;
            case '*':
                result = double.Parse(num1) * double.Parse(num2);
                break;
            case '/':
                result = double.Parse(num1) / double.Parse(num2);
                break;
        }
    }
    else // 사용자가 입력을 하지 않고 = 버튼을 클릭했을 경우
    {
        MessageBox.Show("숫자와 연산자를 입력해주세요.", "알림"); // 메시지박스 띄우기
    }

    num1 = textBox1.Text = result.ToString();
    num2 = null;
    num1turn = true;

    textBox1.Focus();
}

 

 

 

감사합니다!!!