程序托盘
我们做的很多程序都要求实现托盘功能,比如之前常用的qq或微信 等等。 本文以简单的Demo来演示托盘程序
效果演示 ( 注:本案例用的是qq的图标 )
素材准备
两个** icon 格式 的图片 (一个表示在线,一个表示离线)**,用来作为程序托盘的图标
第一步:将 NotifyIcon 控件,拖到主窗体中,并在窗体中添加两个按钮(在线、离线)
第二步:将contextMenuStrip控件,拖到主窗体中
- 设置一个 **退出 **菜单 ( 用作,鼠标在托盘图标右键菜单 )
- 双击 退出 ,自动生成单击方法。 在方法中编写代码 this.Close(); 表示关闭程序
- 将上面的** notifyicon 控件**的 contextMenuStrip 属性 ,设置为当前的 contextMenuStrip
第三步:在主窗体的 Form1_Load 方法中初始化 notifyicon的属性
- 在项目中新建一个文件夹 ,重命名为 icon,用来存放使用到的ico 图标*(放到资源管理中也行)*
- 在Form1_Load 方法中初始化 notifyicon的属性
private void Form1_Load(object sender, EventArgs e)
{
// 初始化
this.notifyIcon1.Icon = new Icon(@"D:\\c#workspace\\练习demo\\托盘程序实现\\icon\\qq彩色.ico");
this.notifyIcon1.Visible = true; //显示图标
this.notifyIcon1.Text = "在线"; // 鼠标悬浮图标上时 提示文案
}
第四步:给主窗体添加一个 FormCloing 事件(表示关闭程序时可进入托盘)
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = MessageBox.Show("是否退出?选否,最小化到托盘", "操作提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
this.Dispose();
Application.Exit();
}
else
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.Visible = false;
this.notifyIcon1.Visible = true;
}
}
第五步:给托盘图标添加一个鼠标单击事件,程序托盘后用来打开程序界面
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
// 单击左键,打开程序
if (e.Button == MouseButtons.Left)
{
this.Show();
this.Focus();
this.WindowState = FormWindowState.Normal;
}
}
第六步:添加 在线与离线按钮的单击事件,代码逻辑如下
- 在线:将托盘图标更换成表示 **在线 **的图片
- 离线:将托盘图标更换成表示 **离线 **的图片
private void button1_Click(object sender, EventArgs e)
{
this.notifyIcon1.Icon = new Icon(@"D:\\c#workspace\\练习demo\\托盘程序实现\\icon\\qq彩色.ico");
this.notifyIcon1.Text = "在线";
}
private void button2_Click(object sender, EventArgs e)
{
this.notifyIcon1.Icon = new Icon(@"D:\\c#workspace\\练习demo\\托盘程序实现\\icon\\qq黑白色.ico");
this.notifyIcon1.Text = "离线";
}
完成以上步骤,托盘程序即可正常运行!!!!
最后注意,托盘的图标必须是 icon 格式的图片!!!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
功能
+关注
关注
3文章
587浏览量
28964 -
程序
+关注
关注
114文章
3631浏览量
79553
发布评论请先 登录
相关推荐
《Visual C# 2008程序设计经典案例设计与实现》---只能运行一次的托盘程序
《Visual C# 2008程序设计经典案例设计与实现》---只能运行一次的托盘程序[hide][/hide]
发表于 05-13 19:24
《Visual C# 2008程序设计经典案例设计与实现》---托盘动画图标程序
《Visual C# 2008程序设计经典案例设计与实现》---托盘动画图标程序[hide][/hide]
发表于 05-13 19:40
如何使Labview编写的运行程序,关闭页面后最小化到系统托盘,就像QQ那样?
请教高手师傅,如何使Labview编写的运行程序,关闭页面后最小化到系统托盘,就像QQ那样。
发表于 11-24 16:59
荣小菜补钙记第32期:LabVIEW之如何实现应用程序最小化托盘
`荣小菜补钙记第32期:LabVIEW之如何实现应用程序最小化托盘 同步更新于 WeChat:荣小菜在补钙大家好,我是荣小菜,也可以叫我Richie,本期分享的是让程序具有最小化
发表于 05-15 14:37
电池托盘制造柔性智能整线“风起”
巨大的市场预期下,电池托盘的车规级、规模化生产需求被提出,电池托盘制造商被要求快速建立自动化产线,电池托盘整线制造成为趋势。彼时,电池托盘轻量化新材料应用也在不断发展。
RFID技术在物流托盘中的应用
随着国内生产水平的不断提升,电商物流行业获得快速发展,而托盘是物流行业的基本单元,有着巨大的市场需求量。据了解,我国目前托盘的年产量大概在3亿片左右,托盘市场的保有量则达到15亿片左右。不过,虽然
发表于 06-04 14:05
•706次阅读
图漾3D视觉托盘栈板识别方案
基于3D机器视觉识别+动态路径规划的智能叉取:智能识别多类型托盘,根据托盘货物位置动态规划叉取路径,降低人工摆放托盘货物要求,高鲁棒性、柔性的智能应用;
RFID托盘实现物流仓储墨水屏电子纸标签可视化跟踪系统的应用体现
晨控智能将RFID电子标签应用于托盘上,对托盘进行智能化的管理,通过托盘标识的方式让仓储管理实现仓库自动化、信息化、数字化管理。RFID技术仓储物流
发表于 01-04 10:52
•490次阅读
气液快速接头在托盘式生产方式中的应用
、气密等。 随行托盘装在工件上随工件移动,工件与托盘通过螺栓固定,夹具仅夹紧在托盘上,工件与托盘定位的螺栓孔及销孔是在产品设计阶段设计出的专用孔位。当产品不同时,仅更换随行
评论