Fly

努力的飞翔!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#实现WinForm程序的动态系统托盘图标

Posted on 2008-03-29 15:38  nyflying  阅读(420)  评论(0)    收藏  举报
1.在主窗体中添加一个 NotifyIcon 控件-notifyIcon1

2.在主窗体中添加一个 ContextMenu 控件-contextMenu1,并添加菜单项

3.设置 notifyIcon1 的属性:
  将notifyIcon1.ContextMenu 设置为 contextMenu1
    notifyIcon1.Visible = true
    notifyIcon1.Icon 设置到一个图标文件

3.处理主窗体的closing事件,即关闭主窗体时就最小化到系统托盘
复制  保存
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true; //取消窗体关闭事件
    this.Visible = false; //隐藏主窗体
}


4.在系统托盘中主窗体的图标上单击右键,出现上下文菜单(contextMenu1)
在某个菜单项的方法中,确保可以恢复主窗体
复制  保存
private void menuItem1_Click(object sender, System.EventArgs e)
{
this.Visible = true; //恢复主窗体
}

在某个菜单项的方法中,确保可以退出程序
复制  保存
private void menuItem2_Click(object sender, System.EventArgs e)
{
Application.Exit();
}

5.也可以不使用上下文菜单来恢复窗体,直接处理notifyIcon1的DoubleClik事件(双击恢复主窗体)
复制  保存
private void notifyIcon1_DoubleClick(object sender, System.EventArgs e)
{
if (this.Visible == false)
{
this.Visible = true;
}
}