C#

(C#) menu 메뉴 만들기

코딩ABC 2023. 6. 25. 07:31
반응형

메뉴 만들기

C#에서 메뉴와 관련된 도구 상자에는 다음과 같은 것들이 있습니다.

- ContextMenuStrip

- MenuStrip

- StatusStrip

- ToolStrip

- ToolStripContainer

menu 메뉴 만들기

메뉴 및 도구 모음

menu 메뉴 만들기

C#에서 메뉴 만드는 방법을 설명합니다.

- Windows Forms 앱 (.NET 6.0)

- Windows Forms 앱(.NET Framework)

 

예제

1. 프로젝트를 생성합니다.

여기서는 Windows Forms 앱 (.NET 6.0), 비주얼스튜디오 2022 버전을 사용합니다.

 

[메뉴및 도구 모음]에서 다음 컨트롤을 추가합니다.

- MenuStrip과 ToolStrip을 더블 클릭해서 폼에 추가합니다.

- MenuStrip을 다음과 같이 입력합니다.

-- 메뉴(&F)   --&F는 키보드(Alt_F)를 이용해서 메뉴를 선택할 때 사용하는 키입니다.

-- -- 열기(&O)

-- -- (구분선)

-- -- 종료(&X)

menu 메뉴 만들기

구분선을 입력하기 위해서는 메뉴 항목에  하이픈("-")을 입력하거나 아래의 그림에서 "Separator"를 선택합니다.

menu 메뉴 만들기

2. 툴바를 선택하고 아래 그림처럼 버튼 2개와 구분을 추가해봅니다.

menu 메뉴 만들기

3. 버튼에 들어가 이미지는 버튼의 속성창에서 "Image" 속성을 이용해서 설정합니다.

menu 메뉴 만들기

 

4. 도구 메뉴를 더 추가해 보겠습니다.

menu 메뉴 만들기

 

5. 잘못 만들어진 메뉴는 마우스를 이용해서 쉽게 수정할 수 있습니다.

- 메뉴 추가하기

- 메뉴 삭제하기

- 메뉴 순서 바꾸기

 

7. 단축키(바로가기 키(Shortcut key)) 만들기

메뉴에 바로가기 키를 만들기 위해서는 해당 메뉴를 선택하고, ShortcutKeys 속성에서 설정하면 됩니다.

menu 메뉴 만들기
menu 메뉴 만들기

8. 간단하게 코드를 작성해 보겠습니다.

 

[종료(F)] 메뉴를 더블 클릭하고, 여기에 프로그램을 종료하는 코드를 작성합니다.

        private void 종료XToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 프로그램 종료
            Application.Exit();
        }

 

계산기와 메모장을 호출하는 코드를 작성합니다.

PC에 설치된 모든 프로그램은 같은 방법으로 호출할 수 있습니다.

다른 프로그램을 호출할 때 사용하는 Process 클래스를 이용하기 위해서 네임스페이스를 추가합니다.

using System.Diagnostics;

 

여기까지 만든 전체 코드입니다.

using System.Diagnostics;

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

        private void 종료XToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 프로그램 종료
            Application.Exit();
        }

        private void 메모장호출NToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 메모장 호출
            Process.Start("notepad.exe");
        }

        private void 계산기호출CToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 계산기 호출
            Process.Start("calc.exe");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            tsLabel1.Text = "";
            tsLabel2.Text = DateTime.Now.ToString();
        }
    }
}

 

9. 실행해 봅니다.

 

ContextmenuStrip과 StatusStrip에 관한 설명은 다음에 또 하도록 하겠습니다.

반응형