본문 바로가기

IT프로그래밍/C Sharp

[C#]윈폼 메세지박스(MessageBox) 사용방법(버튼, 아이콘)

MessageBox 정의와 특성

윈폼에서 메시지 박스는 사용자에게 메시지(Message)를 보여주고 싶을 때 사용합니다.

또한 MessageBox는 현재 활성화된 창이 아닌 새로운 창을 하나 띄워서 보여주는 특성을 갖습니다.

Message Box 표출 이미지
메세지박스(MessageBox) 표출

 

주의하실점은 메세지 박스는 Modal 창이라는 것입니다.

Modal(모달)은 해당 컨트롤러를 닫기 전까지 다른 컨트롤러들을 사용할 수 없게 하는 특성이 있습니다.

 

 

위의 캡처 이미지와 같이 메시지 박스가 열린 상황에서

사용자가 해당 메세지 박스를 닫지 않고, 뒤의 Form1 화면을 클릭 하는 것은 불가능 합니다.

그 이유는 메시지 박스가 Modal(모달)이기 때문에, 해당 창을 닫지 않고 다른 컨트롤러를 선택할 수 없게 하기 때문입니다.


MessageBox 사용방법

1. 메시지만 출력

메시지 박스를 출력하기 위한 최소한의 파라미터만인 메시지만을 입력하여 메세지 박스를 표출할 수 있습니다.

MessageBox.Show("출력할 메시지")

using System;
using System.Windows.Forms;

namespace MessageBoxEx
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("이것은 메시지 박스 입니다.");
        }
    }
}

메세지 박스 출력 화면


2. 메시지와 캡션 출력

메시지만 있으면 허전하지 않나요? 캡션도 출력해 줄 수 있습니다.

MessageBox.Show("출력할 메시지", "캡션명")

using System;
using System.Windows.Forms;

namespace MessageBoxEx
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("이것은 메시지 박스 입니다.", "여기는 캡션자리");
        }
    }
}

caption을 추가한 Message Box
메시지와 캡션 출력 결과


3. 메시지, 캡션, 버튼종류 출력

메세지 박스가 표출되었을 때, 사용자가 누를 수 있는 버튼의 종류도 선택할 수 있습니다.

MessageBox.Show("출력할 메시지", "캡션명", 버튼옵션(MessageBoxButtons))

using System;
using System.Windows.Forms;

namespace MessageBoxEx
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("이것은 메시지 박스 입니다.", "여기는 캡션자리", MessageBoxButtons.YesNo);
        }
    }
}

메세지 박스 버튼 적용 후 이미지
YesNo 버튼 선택시 화면

MessageBoxButtons에서 선택할 수 있는 버튼의 종류는 5가지가 있으니, 상황에 맞게 사용하시기 바랍니다.
선택할 수 있는 종류는 아래와 같습니다.

 

 - 1. MessageBoxButtons.OK : [확인] 버튼만 출력 됩니다.(버튼을 따로 지정하지 않았을 때 나오는 Default 값 입니다).

MessageBoxButtons.OK를 적용한 이미지
- MessageBoxButtons.OK

 - 2. MessageBoxButtons.OKCancel: [확인] 버튼과 [취소]버튼이 출력됩니다.

MessageBoxButtons.OKCancel를 적용한 이미지
MessageBoxButtons.OKCancel

 - 3. MessageBoxButtons.YesNo : [예(Y)] 버튼과 [아니요(N)] 버튼이 출력됩니다.

MessageBoxButtons.YesNo 를 적용한 이미지
MessageBoxButtons.YesNo

 - 4. MessageBoxButtons.YesNoCancel : [예(Y)] 버튼과 [아니요(N)]버튼 그리고 [취소] 버튼이 출력됩니다.

MessageBoxButtons.YesNoCancel를 적용한 이미지
MessageBoxButtons.YesNoCancel

 - 5. MessageBoxButtons.RetryCancel : [다시 시도(R)] 버튼과 [취소] 버튼이 출력됩니다.

MessageBoxButtons.RetryCancel를 적용한 이미지
MessageBoxButtons.RetryCancel


4. 메시지, 캡션, 버튼종류, 아이콘종류 출력

메세지 박스가 표출 될 때, 메세지 옆에 아이콘을 선택하여 표출할 수 있습니다.

MessageBox.Show("출력할 메시지", "캡션명", 버튼옵션(MessageBoxButtons), 아이콘옵션(MessageBoxIcon))

using System;
using System.Windows.Forms;

namespace MessageBoxEx
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("이것은 메시지 박스 입니다.", "여기는 캡션자리", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}

MessageBoxIcon 옵션을 MessageBox에 적용한 이미지
Error 아이콘 표출

MessageBoxIcon의 종류는 총 9가지 이지만, 같은 모양을 갖고 있는 옵션들이 있기 때문에 5가지로 봐야 할 것 입니다.
각각 아이콘 모양은 아래와 같으니 참조하여 적재적소에 사용하시기 바랍니다.

 

 - 1. MessageBoxIcon.None : 아무 아이콘도 표시하지 않습니다. Default 값입니다.

MessageBoxIcon.None 을 적용한 MessageBox의 이미지
MessageBoxIcon.None

 - 2. MessageBoxIcon.Question: 물음표 모양의 아이콘 입니다.

MessageBoxIcon.Question 을 적용한 메세지 박스의 이미지
MessageBoxIcon.Question

 - 3. MessageBoxIcon.Error : 에러 관련 메시지에 함께 표출하면 어울리는 아이콘 입니다.

MessageBoxIcon.Error를 적용한 메세지 박스 이미지
MessageBoxIcon.Error

 - 4. MessageBoxIcon.Hand: Error와 동일한 모양의 아이콘입니다.

MessageBoxIcon.Hand를 적용한 메세지 박스 이미지
MessageBoxIcon.Hand

 - 5. MessageBoxIcon.StopError, Hand와 동일한 모양의 아이콘입니다.

MessageBoxIcon.Stop를 적용한 메세지 박스 이미지
MessageBoxIcon.Stop

 - 6. MessageBoxIcon.Information : 사용자에게 정보를 제공할 때 표출하면 어울리는 아이콘 입니다.

MessageBoxIcon.Information를 적용한 MessageBox 이미지
MessageBoxIcon.Information

 - 7. MessageBoxIcon.Asterisk: Information과 동일한 모양의 아이콘입니다.

MessageBoxIcon.Asterisk를 적용한 MessageBox Image
MessageBoxIcon.Asterisk

 

 - 8. MessageBoxIcon.Exclamation : 노란색 삼각형에 느낌표가 있는 아이콘으로 주의 정도의 느낌을 줍니다.

MessageBoxIcon.Exclamation를 적용한 메시지 박스 이미지
MessageBoxIcon.Exclamation

 - 9. MessageBoxIcon.Warning : Exclamation와 동일한 모양의 아이콘입니다. 

MessageBoxIcon.Warning


MessageBox 정리

메세지 박스는 사용자에게 메세지를 통해 정보를 알려주거나,

[예 아니오] 등 사용자의 의사를 알 수 있게도 해줍니다.

MessageBoxIcon을 통해서 아이콘을 배치하여 MessageBox를 꾸미고,

다양한 MessageBoxButtons의 옵션을 통해 구현하고자 하는 상황에 맞는 버튼을 배치함으로써
사용자와 대화하는 듯한 프로그램을 만들 수 있을 것입니다.

이외의 메세지 박스의 기능에 대한 더욱 자세한 내용은 아래 링크를 눌러서 확인해보세요.

Microsoft MessageBox Class 페이지: https://learn.microsoft.com/ko-kr/dotnet/api/system.windows.forms.messagebox?view=windowsdesktop-7.0