본문 바로가기
프로그래밍

메시지 박스 디자인 살펴보기

by minimax95 2020. 6. 4.

이번 포스팅에서는 프로그램 개발시 자주 사용하는 메시지 박스에 대해서 살펴보겠습니다.

 

메시지 박스는 실제 사용자에게 어떠한 정보를 제공하는데 사용하기도 하지만 디버깅시 런타임에서 임시로 어떤 변수의 값을 확인하거나 필요한 조건 충족시 메시지 창으로 확인하는 경우도 있습니다.

메시지 박스는 OK, OKCancel, YesNo Type의 버튼과 Error, Infomation, Question 등의 정보를 담은 아이콘으로

조합해서 띄울 수 있는데, 그냥 메시지 박스 종류와 모양을 살펴보면 재미가 없기 때문에

프로젝트를 하나 만들어 종류별로 어떠한 메시지 박스가 생성되는지 직접 확인해 보도록 하겠습니다.

 

먼저 아래와 같이 윈폼 앱 형태로 프로젝트를 하나 만들겠습니다.

프로젝트 이름은 MessageBoxTest 입니다.

 

윈폼의 UI는 심플하게 버튼 타입과 아이콘 정보를 선택할 수 있는 RadioButton 컨트롤 두 개를 만들고 각 조합에 따라 메시지 박스를 실행할 OpenBox 버튼을 만들겠습니다.

 

이제 Open Box 버튼을 클릭하면 우리가 조합한 메시지 박스를 띄울 수 있는 기능을 구현할 차례입니다.

기능 구현에 앞서 필요한 멤버를 선언해 줍니다.

MessageBoxButtons msgBB;     // 메시지 버튼 설정 옵션을 저장할 변수

MessageBoxIcon msgBI;          // 메시지 아이콘 설정 값을 담을 변수

 

그리고 'Open Box' 버튼을 더블클릭하여 버튼 처리기를 아래와 같이 생성해 줍니다.

 

버튼처리기에서 메시지 박스 조합을 구성하는 코드를 추가해 주겠습니다.

private void button1_Click(object sender, EventArgs e)

{

    // 메시지 버튼 설정

    if(this.radioButton1.Checked == true)

    {

        msgBB = MessageBoxButtons.OK;

    }

    else if(this.radioButton2.Checked == true)

    {

        msgBB = MessageBoxButtons.OKCancel;

    }

    else if(this.radioButton3.Checked == true)

    {

        msgBB = MessageBoxButtons.YesNo;

    }

 

    // 메시지 아이콘 설정

    if(this.radioButton4.Checked == true)

    {

        msgBI = MessageBoxIcon.Information;

    }

    else if(this.radioButton5.Checked == true)

    {

        msgBI = MessageBoxIcon.Question;

    }

    else if(this.radioButton6.Checked == true)

    {

        msgBI = MessageBoxIcon.Error;

    }

    MessageBox.Show("메시지 박스 알람 테스트입니다.", "알람", msgBB, msgBI);

}

 

실제 빌드하여 실행을 시켜보면 조합에 따라서 9개의 알람 메시지 창을 띄울 수가 있습니다.

 

3개의 알람 메시지 창을 캡쳐하여 올려보았는데,

실제 MessageBoxButtons 메타데이터를 살펴보면 enum으로 OK, OKCancel, AbortRetryIgnore, YesNoCancel, YesNo, RetryCancel 등 6개의 Button Type이 정의되어 있습니다.

 

또한 MessageBoxIcon 에는 None, Hand, Stop, Error, Question, Exclamation, Warning, Asterisk, Information 등 9개의 Type이 enum으로 정의되어 있음을 확인할 수 있습니다.

 

사용자 인터페이스로 알람을 통해 컨펌을 받거나 특정한 상황하에서 메시지를 주고자 할 때

위에서 정의되어 있는 enum을 조합하여 상황에 맞는 알람을 띄운다면

사용자의 만족도가 좀 더 높아질 수 있을 것이라 생각합니다.

 

감사합니다.

댓글