[C# 윈폼] 윈폼 트레이 아이콘(Tray Icon) 표시 하는 방법


안녕하세요.

 

오늘은 C# 윈폼에서 트레이 아이콘 표시하는 방법에 대해서 알려드리려고 합니다.

 

여기서 트레이 아이콘이 무엇인지 모르시는 분들도 계신 텐데요.

 

트레이 아이콘이란 시작버튼이 있는 윈도우 아래 줄을 작업 표시줄이라고 하고, 위에 보이는 작은 아이콘 들을 트레이 아이콘(Tray Icon) 이라고 합니다.


 

바로 다음과 같은 애들입니다!

 


 

이처럼, 자주 사용하는 기술들은 한번 익히고 정리해 두면 두고두고 사용하실 수 있기 때문에 저도 이번에 사용하면서 기술을 정리하고자 포스팅을 하게 되었습니다!

 

그럼 다른 부연 설명 없이 바로 어떻게 코드로 구현을 하는지 보여 드리도록 하겠습니다.

 

먼저 빈 윈폼 프로젝트를 하나 생성해 주시기 바랍니다.

 

그리고 도구상자에서 NotifyIcon 컨트롤을 배치해 주시기 바랍니다.

 

윈폼 프로젝트 생성 및 NotifyIcon 컨트롤 배치



위와 같이 배치를 완료 하셨다면, 이제 NotifyIcon 컨트롤 속성을 다음과 같이 설정해 주시기 바랍니다.



위에서 컨트롤의 NameTray_Icon으로 지정해 주었고, Icon은 구글에서 제가 Free Icon으로 입력해서 .ico 파일 하나를 마음대로 다운로드 받아서 설정해 주었습니다.

 

이 부분은 사용자 분 원하시는 대로 아무 아이콘으로 가져 오시면 되겠습니다.

 

이제 다음으로는 도구상자에서 ContextMenuStrip 컨트롤을 다음과 같이 배치해 주시기 바랍니다.


 

ContextMenuStrip 컨트롤 배치



그리고 위와 같이 Show, Exit 텍스트를 추가해 주시기 바랍니다.

 

아래와 같이 ContextMenuStrip 속성을 설정해 주시기 바랍니다.

 

 

 

그럼 이제 코드로 넘아가서 직접 어떻게 코드로 Tray Icon 기능을 구현하는지 보도록 하겠습니다.


예제 코드


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace TrayIconTest

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

 

            this.Load += TrayIcon_Load;

 

            Tray_Icon.MouseDoubleClick += Tray_Icon_MouseDoubleClick;

            showToolStripMenuItem.Click += showToolStripMenuItem_Click;

            exitToolStripMenuItem.Click += exitToolStripMenuItem_Click;

        }

 

        public void TrayIcon_Load(object sender, EventArgs e)

        {

            Tray_Icon.ContextMenuStrip = Context_TrayIcon;

        }

 

        /// <summary>

        /// 트레이 아이콘 MouseDoubleClick 이벤트

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void Tray_Icon_MouseDoubleClick(object sender, MouseEventArgs e)

        {

            this.ShowInTaskbar = true;

            this.Visible = true;

            this.WindowState = FormWindowState.Normal;

        }

 

        /// <summary>

        /// 트레이 아이콘 Show Button

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void showToolStripMenuItem_Click(object sender, EventArgs e)

        {

            this.ShowInTaskbar = true;

            this.Visible = true;

            this.WindowState = FormWindowState.Normal;

        }

 

        /// <summary>

        /// 트레이 아이콘 Exit Button

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void exitToolStripMenuItem_Click(object sender, EventArgs e)

        {

            MessageBox.Show("폼을 닫을건가요?");

            this.Close();

        }

    }

}

 

Colored by Color Scripter

cs


실행 결과



잘 보이실 지는 모르겠지만..위와 같이 제가 설정해준 아이콘이 제대로 띄어져 있는 것을 확인하실 수 있습니다!

 

그리고, ContextMenuStrip도 마우스 우 클릭을 통해서 제대로 나온 모습을 확인하실 수 있습니다.

 

추가적으로 각각 Show, Exit 버튼 클릭 이벤트 또한 소스코드로 다 구현해 놓았기 때문에 제대로 기능들이 작동되는 것 또한 확인하실 수 있을거에요!


 

이로써 오늘은 Tray Icon 보여주는 방법에 대해서 알아보았습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY