Winform托盘NotifyIcon使用(类似QQ消息提示)
Winform托盘NotifyIcon使用(类似QQ消息提示)
概述:在做cti的过程中,需要在来电的时候在客户端弹出对应的客户信息,所以需要做一个托盘的客户端程序运行,当有来电的时候通过托盘图标的闪动(当然也可以加些音效)来提示坐席人员。这里我使用了NotifyIcon控件实现,主要步骤如下:
第一步:在工具箱中找到NotifyIcon控件,将其拖入设计版面中,如图:
第二步:设置相应的属性,如图:
Icon表示在托盘显示的图片
Text表示鼠标移上去的相应提示
其他的属性这里就不详细说明了,具体用的时候可以去百度一下。
第二步:设置事件,本人这里只用了click事件,当然也可以使用别的事件,看个人需求而定,代码:
this.icoThread.Abort();//这是在之后定义的一个让托盘图标闪动的线程,当用户点击后停止闪动
this.notifyIcon1.Icon = new Icon("ico/c.ico");//将初始化为原来没有闪动的图标
this.Visible = true;//弹出MainForm
this.WindowState = FormWindowState.Maximized;//最大化
第三步:定义闪动的线程,代码:
while (true)
{
this.notifyIcon1.Icon = new Icon("ico/bw.ico");
Thread.Sleep(100);
this.notifyIcon1.Icon = new Icon("ico/c.ico");
Thread.Sleep(100);
}
这里就是不断的去交替两个图标即可,本人项目中用的是一个黑白的和一个彩色的,这样看上去就是闪动效果了。这个线程的Abort时在第二步中click事件中,开始闪动根据之前的概述应该在得到来电的时候(得到来电具体的说明这里不说),当然根据每个人的不同需求可以将其放在不同的地方启动,比如在socket编程中得到消息的时候启动等。
第四步:在winform窗体最小化的时候展示出notifyicon控件,代码:
private void MainForm_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();//隐藏本窗体
this.notifyIcon1.Visible = true;//展示出notifyicon控件
}
}
这样就简单的实现了托盘的闪动效果了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
2011-12-07 转载:iPhone/Mac Objective-C内存管理教程和原理剖析
2011-12-07 IOS开发笔记(六)---对iOS多视图开发的初步了解