C# 实现最小化托盘功能
2024-09-01 01:11:52
winform程序实现最小化托盘显示
1.创建新的解决方案,解决方案名称和路径自定义
2.在解决方案下面新建一个窗体,从左边工具箱,将NotifyIcon拖过去窗体,该控件的作用是:运行程序期间在Windows任务栏右侧的通知区域显示图标(也就是我们所说的托盘显示),如下图
3.我们可以设置该控件的相关属性值,直接上代码了
//调整窗体大小的时候触发的事件
private void Form1_Resize(object sender, EventArgs e)
{
if (this.WindowState==FormWindowState.Minimized)//当窗体设置值为最小化时
{
notifyIcon1.Visible = true;//该控件可见
this.ShowInTaskbar = false;//在任务栏中显示该窗口
}
else
{
notifyIcon1.Visible = false;//否则该控件不可见
}
}
//双击该控件时触发的事件
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.Visible = true;//
this.WindowState = FormWindowState.Normal;//窗口正常显示
this.ShowInTaskbar = true;//在任务栏中显示该窗口
}
还有一点,NotifyIcon控件我们默认设置为不可见
还可以设置自己喜欢的图标作为托盘显示的icon
接下来增加一个另外的:
在NotifyIcon控件中增加一个右键菜单
1.在左边的工具栏中拖入一个上下文菜单contextMenuStrip
2.菜单上添加两个子项,显示和退出
3.双击显示和退出进入,下面直接贴代码,代码就不解释了,都有注释。
private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Visible = true;//可见
this.WindowState = FormWindowState.Normal;//正常显示
this.ShowInTaskbar = false;//在任务栏中显示该窗口
} private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();//退出程序
}
4.接下来是最关键的一步,是将 contextMenuStrip 和 NotifyIcon联系起来的操作,如下图:
ok,到这里的话整个托盘显示的过程已经完成了,以上功能亲测过,如果上文有写错的地方或者有不理解的可以欢迎留言指正。
最新文章
- NOIP2008双栈排序[二分图染色|栈|DP]
- [dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)
- 上传到github!
- sublime Text 2 配置以及 Python环境搭建
- velocity模板引擎学习(3)-异常处理
- JSON 数据格式
- IOS block使用中碰到的一个小坑
- autocomplete实现联想输入,自动补全
- img_jquerydim
- (medium)LeetCode 221.Maximal Square
- (三)在js(jquery)中获得文本框焦点和失去焦点的方法
- golang 之 defer(统计函数执行时间)
- BZOJ 3925: [Zjoi2015]地震后的幻想乡(概率)
- 在Android Studio上测试运行,Unity发布成Android包过程中所遇到的问题及解决方案
- 字符串常用-----atof()函数,atoi()函数
- CentOS中配置SoftWareRaid磁盘冗余阵列
- HTML required
- SSH项目需要的所有架包
- elasticsearch 口水篇(3)java客户端 - Jest
- ThreadLocal Java并发