728x90
1. 강의 개요
이번 강의에서는 Windows Forms의 ContextMenuStrip과 NotifyIcon 컨트롤을 다룹니다.
- ContextMenuStrip: 마우스 오른쪽 클릭 시 표시되는 컨텍스트 메뉴를 제공합니다.
- NotifyIcon: Windows 작업 표시줄의 알림 영역에 아이콘을 추가하고, 사용자 인터페이스를 간소화하는 데 유용합니다.
2. 학습 목표
- ContextMenuStrip의 구성과 사용 방법 학습.
- NotifyIcon을 통해 작업 표시줄에 아이콘을 추가하고 이벤트 처리.
- ContextMenuStrip과 NotifyIcon을 결합하여 알림 영역에서 메뉴를 표시.
3. ContextMenuStrip (컨텍스트 메뉴 스트립)
ContextMenuStrip이란?
ContextMenuStrip은 특정 컨트롤이나 영역에서 마우스 오른쪽 버튼을 클릭했을 때 표시되는 메뉴입니다.
- 메뉴 항목을 추가하여 다양한 작업을 실행할 수 있습니다.
- 컨트롤의 ContextMenuStrip 속성에 연결하여 사용.
주요 속성
속성 설명 예제
Items | 메뉴 항목 컬렉션을 관리 | contextMenuStrip1.Items.Add("삭제"); |
ShowCheckMargin | 메뉴 항목 왼쪽에 체크 표시 공간 표시 | contextMenuStrip1.ShowCheckMargin = true; |
주요 메서드
메서드 설명 예제
Show(Point) | 지정한 위치에서 ContextMenuStrip 표시 | contextMenuStrip1.Show(MousePosition); |
4. NotifyIcon (알림 아이콘)
NotifyIcon이란?
NotifyIcon은 Windows 작업 표시줄의 알림 영역에 아이콘을 추가합니다.
- 프로그램의 간소화된 상태를 알리거나 작업을 실행할 수 있습니다.
- ContextMenuStrip을 연결해 작업 표시줄에서 메뉴를 표시 가능.
주요 속성
속성 설명 예제
Icon | 알림 영역에 표시할 아이콘 | notifyIcon1.Icon = SystemIcons.Application; |
Text | 아이콘 위에 마우스를 올릴 때 표시되는 텍스트 | notifyIcon1.Text = "알림 아이콘입니다."; |
Visible | 아이콘 표시 여부 | notifyIcon1.Visible = true; |
주요 이벤트
이벤트 설명 예제
MouseClick | 아이콘을 마우스로 클릭했을 때 발생 | notifyIcon1.MouseClick += NotifyIcon1_MouseClick; |
5. 실습: ContextMenuStrip과 NotifyIcon 연동
요구사항
- ContextMenuStrip에 "열기", "설정", "종료" 항목을 추가.
- NotifyIcon을 작업 표시줄에 추가하고 ContextMenuStrip과 연결.
- NotifyIcon을 클릭하면 ContextMenuStrip이 표시되도록 구현.
폼 구성
컨트롤 타입 이름 텍스트 위치 크기
ContextMenuStrip | contextMenuStrip1 | (없음) | 없음 | (메뉴 내부 정의) |
NotifyIcon | notifyIcon1 | "알림 아이콘입니다." | 작업 표시줄 알림 영역 | 아이콘 크기 (16x16) |
코드 작성
Form1.cs
using System;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitializeContextMenuStrip();
InitializeNotifyIcon();
}
private void InitializeContextMenuStrip()
{
// ContextMenuStrip 항목 추가
ToolStripMenuItem openItem = new ToolStripMenuItem("열기", null, OpenItem_Click);
ToolStripMenuItem settingsItem = new ToolStripMenuItem("설정", null, SettingsItem_Click);
ToolStripMenuItem exitItem = new ToolStripMenuItem("종료", null, ExitItem_Click);
contextMenuStrip1.Items.AddRange(new[] { openItem, settingsItem, exitItem });
}
private void InitializeNotifyIcon()
{
// NotifyIcon 설정
notifyIcon1.Icon = SystemIcons.Application; // 기본 애플리케이션 아이콘 사용
notifyIcon1.Text = "알림 아이콘입니다.";
notifyIcon1.Visible = true;
notifyIcon1.ContextMenuStrip = contextMenuStrip1;
// NotifyIcon 클릭 이벤트 처리
notifyIcon1.MouseClick += NotifyIcon1_MouseClick;
}
// NotifyIcon 클릭 시 ContextMenuStrip 표시
private void NotifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right) // 오른쪽 클릭 시 메뉴 표시
{
contextMenuStrip1.Show(Cursor.Position);
}
}
// 메뉴 항목 클릭 이벤트
private void OpenItem_Click(object sender, EventArgs e)
{
MessageBox.Show("열기 작업이 실행되었습니다.", "열기");
}
private void SettingsItem_Click(object sender, EventArgs e)
{
MessageBox.Show("설정 창이 열렸습니다.", "설정");
}
private void ExitItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
6. 실행 결과
- ContextMenuStrip
- 마우스 오른쪽 클릭 시 "열기", "설정", "종료" 메뉴가 표시됩니다.
- 각 메뉴 클릭 시 해당 이벤트가 실행됩니다.
- NotifyIcon
- 작업 표시줄의 알림 영역에 아이콘이 추가됩니다.
- 아이콘을 오른쪽 클릭하면 ContextMenuStrip이 표시됩니다.
- 메뉴 동작 예시
- "열기" 클릭 시:
열기 작업이 실행되었습니다.
- "설정" 클릭 시:
설정 창이 열렸습니다.
- "종료" 클릭 시 프로그램 종료.
- "열기" 클릭 시:
7. 주요 개념 요약
- ContextMenuStrip은 특정 컨트롤 또는 NotifyIcon과 연동하여 컨텍스트 메뉴를 제공합니다.
- NotifyIcon은 Windows 작업 표시줄의 알림 영역에 아이콘을 추가하고 메뉴를 표시할 수 있습니다.
- ContextMenuStrip과 NotifyIcon을 연동하면 간소화된 UI를 만들 수 있습니다.
728x90
'Study > C#' 카테고리의 다른 글
C# Windows Forms 강의 10편: TreeView와 ListView (0) | 2025.02.13 |
---|---|
C# Windows Forms 강의 9편: TabControl과 ProgressBar (0) | 2025.02.12 |
C# Windows Forms 강의 7편: MenuStrip과 ToolStrip (0) | 2025.02.10 |
C# Windows Forms 강의 6편: TableLayoutPanel과 SplitContainer (0) | 2025.02.09 |
C# Windows Forms 강의 5편: Panel과 FlowLayoutPanel 컨트롤 (0) | 2025.02.08 |