http://blog.daum.net/starkcb/60
종료 혹은 최소화 버튼을 눌렷을 때 트레이 아이콘만들기~!
1.도구상자에서 NotifyIcon을 선택하여 Form에 추가 합니다. 추가 후 소성창의 Icon 속성에 준비해준 Ico 파일을 연결해 줍니다. 여기까지만 하고 실행시켜도 트레이에 우리 프로그램의 아이콘이 보이는 걸 볼 수 있습니다.
2. 트레이에서 마우스 오른쪽 버튼을 눌렀을 경우 나올 메뉴를 위해 ContextMenuStrip도 추가해 줍니다.
3. 아이콘 추가
Form에 NotifyIcon을 드레그 하여 추가한다.(시스템에 보여질 아이콘)
4. contextMenuStrip를 드레그 하여 추가한다.(트레이 아이콘의 오른쪽을 클릭하였을 때 보여질 메뉴스트립)
최대화(show)와 종료 버튼을 추가하였다.
5. 트레이 아이콘과 메뉴스트립 연결
폼이 초기에 로드될 때 연결이 되도록 설정하였다.
private void frmMain_Load(object sender, EventArgs e)
{
//트레이 아이콘과 컨텍스트메뉴 연결
Tray.ContextMenuStrip = contextMenuStrip1;
}
5. 종료 버튼을 눌렸을 때 최소화하기
이렇게 폼의 속성창에서 종료 이벤트를 추가하면 함수가 생성된다
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;//이벤트 취소
//둘중 한개 쓰면 됨 이둘을 사용하여 최소화 하면 alt+tab 실행 시 출력이 되지 않음 Start->
this.Visible = false;
//this.Hide();
//둘중 한개 쓰면 됨 이둘을 사용하여 최소화 하면 alt+tab 실행 시 출력이 되지 않음 End<-
//alt+tab를 눌렸을 때 도 나타나게 하는 법 Start ->
// this.WindowState = FormWindowState.Minimized;// 최소화
// this.ShowInTaskbar = false; //화면 하단에 나타나는것 해제
//alt+tab를 눌렸을 때 도 나타나게 하는 법 End <-
}
6. 트레이 아이콘 클릭시 최대화 하기
private void Tray_DoubleClick(object sender, EventArgs e)
{
//둘중 한개 쓰면 됨 이둘을 사용하여 최소화 하면 alt+tab 실행 시 출력이 되지 않음 Start->
this.Visible = true;
//this.Show();
//둘중 한개 쓰면 됨 이둘을 사용하여 최소화 하면 alt+tab 실행 시 출력이 되지 않음 End<-
//alt+tab를 눌렸을 때 도 나타나게 하는 법 Start ->
//this.WindowState = FormWindowState.Maximized;// 최소화
//this.ShowInTaskbar = true; //화면 하단에 나타나는것 해제
//alt+tab를 눌렸을 때 도 나타나게 하는 법 End <-
}
그외 트레이 아이콘에 show버튼을 눌렸을 때 함수 처리는 5번과 동일하게 내부 함수 처리하면 되고 exit눌렸을 때는 this.Close();처리를 하여 종료처리를 해주면 된다.!!