본문 바로가기

컴퓨터/언어,프로그래밍

[C# .NET] NotifyIcon, ContextMenuStrip 활용 (초간단ㅋ)

프로그램을 계속 실행 시켜두지만 화면에 띄우지 않아도 될 때, 
작업표시줄에 계속 보이면 신경 쓰이잖아요?



트래이 아이콘으로 만들어서 시계 옆에 쪼맨한 아이콘으로 박아두면 덜 신경 쓰이죵~
그럴 때 사용하는 거랍니다. (NotifyIcon)



ContextMenuStrip은 트래이 아이콘이 되었을 때 마우스 오른쪽 버튼을 누르면 메뉴가 띄게끔 만들 때 사용하구요..



[NotifyIcon 컨트롤 추가]




[ContextMenuStrip 컨트롤 추가 > 메뉴추가] 
폼디자인에서 직접 메뉴를 넣어줘도 되고, 코딩할 때 넣어줘도 됨.




[NotifyIcon 컨트롤 속성변경] 
[주의] :: Icon 설정을 하지 않으면 Tray Icon이 보이지 않음.

        //메인창 메뉴 > 화면 숨기기 클릭시 작동
        private void mnuNotifyIcon_Click(object sender, EventArgs e)
        {
            Tray_On();
        }

        //메인창 최소화 버튼 클릭시 작동
        private void frmMain_SizeChanged(object sender, EventArgs e)
        {
            if (FormWindowState.Minimized == WindowState)       //최소화 상태면
                Tray_On();
        }

        //트래이 아이콘에서 오른쪽 버튼을 눌러 "열기" 를 눌렀을 경우 (ContextMenuStrip)
        private void stripMnuOpen_Click(object sender, EventArgs e)
        {
            Tray_Off();
        }

         //트래이 아이콘에서 오른쪽 버튼을 눌러 "종료" 를 눌렀을 경우 (ContextMenuStrip)
        private void stripMnuExit_Click(object sender, EventArgs e)
        {
            Application.Exit();                                 //프로그램 종료
        }

        //트래이 아이콘을 더블클릭 했을 때 작동
        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            Tray_Off();
        }

        //창 비활성화 = 트래이 아이콘으로만 동작
        private void Tray_On()  
        {
                this.Visible = false;                           //폼 표시안함
                notifyIcon1.Visible = true;                     //트래이 아이콘 표시
        }

        //창 활성화 = 트래이 아이콘 종료
        private void Tray_Off() 
        {
            this.Visible = true;                                //폼 표시

            if (this.WindowState == FormWindowState.Minimized)  //최소화 상태면?
                this.WindowState = FormWindowState.Normal;      //최소화 중지

            this.Activate();                                    //폼을 활성화

            notifyIcon1.Visible = false;                        //트래이 아이콘 표시안함
        }
제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...