본문 바로가기
📁 [4] 개발자 정보 & 코드 노트/C#

C# Windows Forms 강의 7편: MenuStrip과 ToolStrip

by wawManager 2025. 2. 10.

1. 강의 개요

이번 강의에서는 Windows Forms에서 자주 사용되는 MenuStripToolStrip 컨트롤을 학습합니다.

  • MenuStrip: 프로그램 상단에 메뉴를 구성하는 데 사용되며, 파일 메뉴, 설정, 도움말 등 기능을 제공.
  • ToolStrip: 버튼, 텍스트박스, 드롭다운 등을 포함한 도구 모음을 생성하여 자주 사용하는 작업을 실행 가능.

2. 학습 목표

  1. MenuStripToolStrip의 주요 기능과 속성 이해.
  2. 메뉴 및 도구 모음을 구성하는 방법 학습.
  3. 이벤트 처리로 메뉴와 도구 모음 동작 연결.

3. MenuStrip (메뉴스트립)

MenuStrip이란?

MenuStrip은 애플리케이션의 상단에 메뉴를 배치할 수 있는 컨트롤입니다.
메뉴 항목은 계층적으로 구성되며, 사용자가 항목을 선택하면 특정 작업을 수행합니다.

주요 속성

속성 설명 예제

Items 메뉴 항목 컬렉션을 관리 menuStrip1.Items.Add("파일");
MdiWindowListItem 다중 문서 인터페이스(MDI) 메뉴 표시 menuStrip1.MdiWindowListItem = menuItemWindows;

4. ToolStrip (툴스트립)

ToolStrip이란?

ToolStrip은 버튼, 드롭다운 메뉴, 텍스트박스 등으로 구성된 도구 모음을 제공합니다.
도구 모음은 사용자가 자주 사용하는 기능을 실행하도록 돕습니다.

주요 속성

속성 설명 예제

Items ToolStrip 항목 컬렉션을 관리 toolStrip1.Items.Add(new ToolStripButton("열기"));
GripStyle ToolStrip의 손잡이 표시 설정 toolStrip1.GripStyle = ToolStripGripStyle.Hidden;

5. 실습: MenuStrip과 ToolStrip 구성하기

요구사항

  1. MenuStrip을 사용해 "파일", "도움말" 메뉴를 생성.
    • 파일: "열기", "저장", "종료".
    • 도움말: "정보".
  2. ToolStrip을 사용해 "열기"와 "저장" 버튼을 추가.
  3. 각 메뉴와 버튼 클릭 시 메시지박스로 이벤트 확인.

폼 구성

컨트롤 타입 이름 텍스트 위치 크기

MenuStrip menuStrip1 (없음) 상단 고정 자동 크기
ToolStrip toolStrip1 (없음) MenuStrip 아래 자동 크기
ToolStripButton btnOpen "열기" ToolStrip 내부 (32x32) (아이콘 크기)
ToolStripButton btnSave "저장" ToolStrip 내부 (32x32) (아이콘 크기)

코드 작성

Form1.cs

using System;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeMenuStrip();
            InitializeToolStrip();
        }

        private void InitializeMenuStrip()
        {
            // 파일 메뉴
            ToolStripMenuItem fileMenu = new ToolStripMenuItem("파일");
            ToolStripMenuItem openItem = new ToolStripMenuItem("열기", null, OpenItem_Click);
            ToolStripMenuItem saveItem = new ToolStripMenuItem("저장", null, SaveItem_Click);
            ToolStripMenuItem exitItem = new ToolStripMenuItem("종료", null, ExitItem_Click);
            fileMenu.DropDownItems.AddRange(new[] { openItem, saveItem, exitItem });

            // 도움말 메뉴
            ToolStripMenuItem helpMenu = new ToolStripMenuItem("도움말");
            ToolStripMenuItem aboutItem = new ToolStripMenuItem("정보", null, AboutItem_Click);
            helpMenu.DropDownItems.Add(aboutItem);

            // MenuStrip 구성
            menuStrip1.Items.AddRange(new[] { fileMenu, helpMenu });
            this.MainMenuStrip = menuStrip1;
        }

        private void InitializeToolStrip()
        {
            // ToolStrip 버튼 추가
            ToolStripButton btnOpen = new ToolStripButton("열기");
            btnOpen.Click += OpenItem_Click;

            ToolStripButton btnSave = new ToolStripButton("저장");
            btnSave.Click += SaveItem_Click;

            toolStrip1.Items.AddRange(new ToolStripItem[] { btnOpen, btnSave });
        }

        // 메뉴 및 버튼 이벤트 핸들러
        private void OpenItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("파일을 열었습니다.", "열기");
        }

        private void SaveItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("파일을 저장했습니다.", "저장");
        }

        private void ExitItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void AboutItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("이 프로그램은 Windows Forms 예제입니다.", "정보");
        }
    }
}

6. 실행 결과

  1. MenuStrip
    • 상단에 "파일" 및 "도움말" 메뉴가 표시됩니다.
    • "열기", "저장", "종료", "정보" 메뉴가 포함되어 있으며, 클릭 시 메시지박스로 이벤트가 발생합니다.
  2. ToolStrip
    • "열기"와 "저장" 버튼이 추가됩니다.
    • 버튼 클릭 시 동일한 이벤트가 처리됩니다.

7. 주요 개념 요약

  1. MenuStrip은 메뉴를 계층적으로 구성하여 사용자가 다양한 작업을 수행할 수 있도록 합니다.
  2. ToolStrip은 자주 사용하는 작업을 빠르게 실행할 수 있도록 도구 버튼을 제공합니다.
  3. 이벤트 핸들러를 활용해 메뉴 항목과 도구 버튼의 동작을 정의할 수 있습니다.