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

来源:互联网 发布:js随机生成算法 编辑:程序博客网 时间:2024/05/16 15:12

原文地址:http://www.dingos.cn/index.php?topic=1057.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;
    }
}

原创粉丝点击