본문 바로가기
프로그래밍

[C#]메뉴와 컨텍스트 메뉴 만들기

by minimax95 2020. 7. 16.

이번 포스팅에서는 윈폼에서 자주 사용하는 메뉴와 콘텍스트 메뉴에 대해 알아보겠습니다.

 

먼저 솔루션을 아래와 같이 생성하고 시작해보겠습니다.

솔루션 이름은 "WinFormTest"입니다.

 

솔루션이 생성되고 빈 윈도우가 나타나면 여기에 MenuStrip을 추가해 줍니다.

기본적으로 윈폼에서는 도구상자에 "MenuStrip"을 제공해 주는데 윈폼에서 그냥 드래그하여 삽입할 수 있습니다.

"여기에 입력" 부분을 클릭하여 추가할 메뉴를 입력해 줍니다.

아래 그림처럼 "알람"과 "종료" 두 개의 메뉴를 추가해 주었습니다.

 

추가한 메뉴의 하위 메뉴를 만드려면 추가한 메뉴 부분을 다시 클릭하면 아래 그림처럼 하위 메뉴도 추가할 수 있습니다.

이제 추가한 메뉴의 이벤트 처리기를 연결해 주겠습니다.

추가한 메뉴를 각각 더블클릭하면 자동으로 이벤트 처리기가 등록되는데 함수명이 한글로 표시되기 때문에 속성 창에서

이름을 영문으로 살짝 바꾸고 더블클릭해 주겠습니다.

이름은 각각 "AlarmToolStripMenuItem"과 "ExitToolStripMenuItem"입니다.

이제 메뉴 항목을 더블클릭하여 이벤트 처리기를 등록해 주겠습니다.

이제 각 이벤트 처리기에서 처리할 기능을 추가해 주겠습니다.

알람 이벤트 처리기에서는 메시지 박스로 "알람 발생" 메시지를 팝업으로 띄우고

종료 이벤트처리기에서는 프로그램을 종료하는 기능을 추가해 보겠습니다.

private void AlarmToolStripMenuItem_Click(object sender, EventArgs e)

{

    MessageBox.Show("알람 발생");

}

 

private void ExitToolStripMenuItem_Click(object sender, EventArgs e)

{

    Application.Exit( );    // 프로세스 종료

}

 

여기까지가 윈폼에서 기본 메뉴를 추가하여 사용하는 방법입니다.

이제 빌드하여 실행결과를 확인해 보겠습니다.

메뉴를 클릭하면 우리가 추가한 알람과 종료 메뉴가 나타나고 여기서 알람 메뉴를 클릭하면 알람 메시지 박스가 생성되는 것을 확인할 수 있습니다. 메뉴에서 종료 메뉴를 클릭하면 프로그램은 종료됩니다.

 

다음은 콘텍스트 메뉴에 대해 살펴보겠습니다.

컨텍스트 메뉴는 상황(context)에 따라 보여준다고 해서 컨텍스트 메뉴라고 부르는데 보통 우클릭을 통해 클릭한 위치에서 상황에 맞는 메뉴 항목들을 구성해서 사용자에게 메뉴를 보여줍니다.

 

아래와 같이 마우스 우측 버튼이 클릭되었을 경우 실행되는 Form 재정의 메서드를 이용하여 구현해 보겠습니다.

protected override void OnMouseClick(MouseEventArgs e)

{

    base.OnMouseClick(e);

    // 마우스 우측 버튼이 눌린 경우에 컨텍스트 메뉴 실행

    if(e.Button == System.Windows.Forms.MouseButtons.Right)

    {

        ContextMenu contextMenu = new ContextMenu();

 

        MenuItem menuItem = new MenuItem("알람 발생");

        menuItem.Click += AlarmToolStripMenuItem_Click;    // 메뉴에서 등록한 알람 이벤트 처리기 등록

        contextMenu.MenuItems.Add(menuItem);

 

        menuItem = new MenuItem("종료");

        menuItem.Click += ExitToolStripMenuItem_Click;   // 메뉴에서 등록한 종료 이벤트처리기 등록

        contextMenu.MenuItems.Add(menuItem);

 

        contextMenu.Show(this, e.Location);    // 마우스가 클릭된 지점에서 콘텍스트 메뉴 Show

    }

}

 

이제 솔루션을 빌드하여 실행시켜 보겠습니다.

위 그림에서 처럼 우클릭을 한 지점에서 콘텍스트 메뉴가 나타나고 알람 메뉴 항목을 클릭하면 알람 메시지 박스가 나타남을 확인 할 수 있습니다. 물론 종료 메뉴도 클릭하게 되면 프로세스가 종료됩니다.

 

지금까지 메뉴와 컨텍스트 메뉴 사용방법에 대해 알아보았습니다.

감사합니다.

댓글