이런경우 그냥 실행시 프로그램의 visible 를 False 로 하고, 트레이 아이콘을 등록해 주면 된다.
간단하게 폼 하나를 추가하고.
notifyIcon 컨트롤을 추가해 준다.
보여줄 아이콘이 지정되어 있지 않으면 notifyIcon 을 등록해도 소용이 없으므로, 적당한 아이콘을 찾아 지정해 준다.
제대로 지정했으면 지정한 아이콘이 보일 것이다.
그리고, ContextMenuStip 를 하나 추가해 준다.
물론 없어도 실행하는데는 별 상관이 없지만, 이게 없으면 정상적인 방법으로는 실행시킨 프로그램을 종료할 방법이 없어지므로 추가해 준다.
실행 폼이 여러개라면 맨처음에 실행될 frmStart 를 시작 폼으로 기록해 둔다.
시작 폼에 위와 같이 소스를 작성한다.
public frmStarter() { InitializeComponent(); this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; this.Visible = false; this.notifyIcon1.Visible = true; notifyIcon1.ContextMenuStrip = contextMenuStrip1; } private void 종료ToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); }
이렇게 하고 실행하면...
아무런 액션이 일어나지 않지만, 트레이에 자세히 보면 새로운 아이콘이 등록된것이 보인다.
당연한 말이지만, 트레이아이콘 마져 등록하지 않으면, 아무런 표시없이 실행되게 할 수도 있다. (물론 프로세스 목록에선 나타나겠지만...)
ContextMenuStip 가 등록되어 있으므로 마우스 오른쪽 버튼을 클릭시 팝업 메뉴가 나타나고 "종료"를 선택시 프로그램이 종료된다.