winform程序 如何添加 系统托盘及右键菜单退出?

摘要:
首先,先拖一个NotifyIcon到主窗体,然后设置NotifyIcon的图标,不然等下最小化后,都找不到那个程序了,还有那个Text也是,不写名字,就默认是NotifyIcon了..如下图:然后双击NotifyIcon,代码如下://////添加双击托盘图标事件(双击显示窗口)/////////˂par
首先,先拖一个NotifyIcon到主窗体,然后设置NotifyIcon的图标,不然等下最小化后,都找不到那个程序了,还有那个Text也是,不写名字,就默认是NotifyIcon了..如下图:
winform程序 如何添加 系统托盘及右键菜单退出?第1张
然后双击NotifyIcon,代码如下:
///<summary>
///添加双击托盘图标事件(双击显示窗口)
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
privatevoidnotifyIcon1_MouseDoubleClick(objectsender,MouseEventArgse)
{
if(WindowState==FormWindowState.Minimized)
{
//还原窗体显示
WindowState=FormWindowState.Normal;
//激活窗体并给予它焦点
this.Activate();
//任务栏区显示图标
this.ShowInTaskbar=true;
//托盘区图标隐藏
notifyIcon1.Visible=false;
}
}
然后分别到主窗口的单击事件里面添加以下两个方法即可,如下图:
winform程序 如何添加 系统托盘及右键菜单退出?第2张winform程序 如何添加 系统托盘及右键菜单退出?第3张
代码如下:
///<summary>
///判断是否最小化,然后显示托盘
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
privatevoidF_Main_SizeChanged(objectsender,EventArgse)
{
//判断是否选择的是最小化按钮
if(WindowState==FormWindowState.Minimized)
{
//隐藏任务栏区图标
this.ShowInTaskbar=false;
//图标显示在托盘区
notifyIcon1.Visible=true;
}
}
///<summary>
///确认是否退出
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
privatevoidF_Main_FormClosing(objectsender,FormClosingEventArgse)
{
if(MessageBox.Show("是否确认退出程序?","退出",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
{
//关闭所有的线程
this.Dispose();
this.Close();
}
else
{
e.Cancel=true;
}
}
下面是托盘右键菜单的制作:
先拖一个ContextMenuStrip到主界面,然后添加你的右键菜单,在然后绑定给NotifyIcon即可,图形如代码如下:
winform程序 如何添加 系统托盘及右键菜单退出?第4张
绑定菜单给NotifyIcon
winform程序 如何添加 系统托盘及右键菜单退出?第5张
后台代码:
///<summary>
///托盘右键显示主界面
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
privatevoid显示ToolStripMenuItem_Click(objectsender,EventArgse)
{
WindowState=FormWindowState.Normal;
}
///<summary>
///托盘右键退出程序
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(MessageBox.Show("是否确认退出程序?","退出",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
{
//关闭所有的线程
this.Dispose();
this.Close();
}
}

免责声明:文章转载自《winform程序 如何添加 系统托盘及右键菜单退出?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇门户系统整合sso cookie共享及显示用户信息zookeeper 操作命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.Net WinForm下配置Log4Net(总结不输出原因)

最近做一个winform项目,配置了Log4net 但是总是不能输出,搜索了很多文章加上自己的探索发现自己在项目中添加的Log4Net.config 生成时没有被复制到Debug文件夹下, 所以程序在调用日志输出时找不到这个配置文件,所以没有输出(在网上搜了很多,也有很多说是路径问题造成不能输出) 解决办法:1.在项目工程中,选中Log4Net.confi...

winform窗体 【打开多个窗体、窗体之间传值、打开唯一窗体】

1、打开多个窗体 2、窗体之间的传值 3打开唯一窗体 Form1中btn1按钮点击show出Form2,当Form2处于开启状态时,再次点击btn1不会继续弹出窗体,而是将焦点定位至已开启的Form2上;当Form2关闭后,再次点击btn1则会show出一个新的Form2; Form1: //创建一个全局集合,用来放置已经show出的窗体对象 L...

Winform开发之窗体显示、关闭与资源释放

Winform的窗体涉及到一般窗体(单文档窗体)、MDI窗体、窗体之间的关系等,那么如果调用打开新窗体、如何关闭窗体、窗体资源的释放等都关系到软件运行的效率,本文一一介绍 1、窗体的显示 从一个窗体打开另一个窗体,基本会用到两种方法,即Show()和ShowDialog(),前者是一般的窗体,后者是模态窗体。 两种调用是由些许的不同 (1)在调用Form....

自己画WinForm 皮肤包括默认控件

好久没来博客园,今天捣鼓到现在就是为了把之前的皮肤控件完善好, 之前也看了很多技术文章,大多数都是自己重写系统控件实现换肤,几乎没有像东日的(IrisSkin)控件一样 添加一个组件 把系统的皮肤全换掉,我曾经也是重写系统的控件,但我就喜欢瞎捣鼓,于是就开始找这方面的资料,苦于没学过底层,对windows窗口 以及消息循环机制不了解,找资料也基本上白搭了许...

winform窗体(六)——DataGridView控件及通过此控件中实现增删改查

DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查 一、后台数据绑定:    List<xxx> list = new List<xxx>();      dataGridView1.DataSource = list;      //设置不自动生成列,此属性在属性面板中没有      data...

winform知识

控件相关 1.文本框/label高度 文本框Multiline属性,设为true就可以了。改完高度后再将此属性改回来,要不然多行文本框,按回去就去下一行了。 label的改autoSize属性,设为false就可以了。 2.控件中文字居中 TextAlign属性:MiddleCenter 3.颜色属性 直接输入 #xxxx 4.如何去掉button按钮的...