한글 VisualStudio에서 개발한 WinForm(윈폼) 응용프로그램(애플리케이션)의 경우 언어 설정에 따라 MassageBox의 버튼 문구가 모두 한글로 표시 됩니다.
중문 또는 영문 윈도우에서 프로그램을 실행했을때 Label이나 메시지 문구는 해당 언어로 표시되면서 MessageBox의 버튼 문구만 ‘Yes’, ‘No’, ‘OK’, ‘Cancel’ 등으로 표시되지 않고 ‘예’, ‘아니오’, ‘확인’, ‘취소’ 등과 같이 한글로 문구가 표시되어 프로그램이 왠지 어색해지고 작업자에게 혼돈을 줄 수 있게 됩니다..
이를 방지하기 위해서는 MessageBox의 버튼에 표시되는 기본 문구를 별도로 변경해 주어야 할 필요가 있습니다.
이번 글에서는 C# MessageBox의 버튼(Button) 기본 문구(예,아니오)를 변경 하는 방법에 알아보겠습니다.
MassageBox의 버튼 Text를 별도 지정한 문구로 표시되도록 하는 방법
1. 아래 문장을 구현하기 위해서는 별도의 참조 라이브러리(MessageBoxManager.dll)가 필요합니다.
- ※ 필요하신 분은 댓글 남겨주세요.(zip파일의 원본을 이용하여 직접 dll 생성하여 참조해서 사용하면 됩니다)
2. 프로젝트의 program.cs에 MessageBox의 각 버튼(Button)에 해당하는 Text를 직접 지정해 주면 됩니다.
//MessageBox 버튼의 글자를 영문으로 지정(한글 VisualStuido에서 빌드한 경우 디폴트는 한글로 나옴)
MessageBoxManager.OK = “Ok”;
MessageBoxManager.Cancel = “Cencel”;
MessageBoxManager.Yes = “Yes”;
MessageBoxManager.No = “No”;
MessageBoxManager.Retry = “Retry”;
MessageBoxManager.Ignore = “Ignore”;
MessageBoxManager.Abort = “Abort”;
MessageBoxManager.Register();
|
C#에서 실제 사용 예제 및 실행 화면
▼ MessageBox 버튼 텍스트를 변경 설정 후에 MessageBox를 띄우는 예제 소스입니다.
- Unregister()는 MessageBox의 버튼 텍스트 설정을 다시 원래 상태로 복원하게 됩니다.
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(“This is a message…”, “Test”, MessageBoxButtons.OK);
MessageBox.Show(“This is a message…”, “Test”, MessageBoxButtons.OKCancel, MessageBoxIcon.Hand);
//MessageBox 버튼 설정 해제
MessageBoxManager.Unregister();
MessageBox.Show(“This is a message…”, “Test”, MessageBoxButtons.OK);
MessageBox.Show(“This is a message…”, “Test”, MessageBoxButtons.OKCancel, MessageBoxIcon.Hand);
}
|
▼ 위 프로그램의 실행 결과 화면입니다.
결론적으로 개발한 WinForm(윈폼) 응용프로그램(애플리케이션)이 어떤 환경에서 실행되는지에 따라 적절한 MessageBox의 버튼 문구(Text)를 변경해 주어야 합니다. 프로젝트의 program.cs에서 한번만 설정해 주면 전체 프로젝트에서 적용되니 간단하게 사용할 수가 있습니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
- C# 윈폼 크기에 따라 반응형으로 크기가 자동 조절되는 Panel 및 Grid Control 구현 방법
- C#으로 PDF 파일에 워터마크(Watermark)를 삽입한 프로그램 소스 설명
- C# 윈폼에서 이미지 컨트롤을 구현할 때 다른 컨트롤의 배경을 투명하게 설정 하는 방법
- C# Winform의 TextBox 기본 입력 모드(IME)를 한글로 설정 하는 방법
- C# 엑셀 문서의 여러 시트를 DataTable로 한번에 가져오는 방법(NPOI 참조)
- C# 윈폼 DataGridView에서 CheckBox를 사용해서 RadioButton을 구현 하는 방법
이 글이 도움이 되었기를 바랍니다. ^-^