C#实现状态栏提示信息功能的示例
作者:雨中深巷的油纸伞 发布时间:2022-01-05 12:36:57
本功能是在winform平台上实现的,其他平台大同小异,不多做介绍。
1.首先创建一个测试用winform窗体
2.在winform窗体上添加一个notifyIcon控件
然后设置notifyIcon属性,可自行修改其name属性,本文中name属性为notifyIcon1,注意此时点击查看ContextMenuStrip属性时显示的是无,所以我们还需要添加一个ContextMenuStrip控件
此时再去查看notifyIcon1中的ContextMenuStrip的属性时发现里面会有新添加的对应的ContextMenuStrip的控件,选中。
然后设置Icon属性(必须设置,否则状态栏中无法显示),设置Icon其实就是添加以.ico类型的图片。所以需要提前下载好图片,如果想要实现闪烁的效果,最少需要两个图片。本文中使用的图片网址为:https://www.easyicon.net/iconsearch/*.ico/
最后将notifyIcon1的visible属性设置为true。
3.ContextMenuStrip控件属性设置
选中ContextMenuStrip控件,查看其Items属性,初始为空,这个是用来设置notifyIcon显示后的图片的邮件菜单的。
点击items,进行设置
本文中使用的都是MenuItem,其他三种可自行实验。点击添加按钮如图可添加toolStripMenuItem1,右侧可设置其属性,按照自身的要求修改即可,本文中只修改了其text属性。
4.代码实现
private Icon blank = new Icon("icon/b.ico");//新建一个ico图片的对象以供下面实现闪烁的效果
private Icon normal = new Icon("icon/c.ico");
private bool satus = true;
private void Lims_BH_AssetsManagement_Load(object sender, EventArgs e)
{//页面加载时实现信息提示的功能。
this.notifyIcon1.ShowBalloonTip(60,"警告","有设备需要维修",ToolTipIcon.Warning);
}
还可以设置notifyIcon的双击效果,本文中效果是双击使窗体最大化
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{//ShowInTaskbar设置是否在任务栏中显示
if (WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Maximized;
}
}
5.notifyIcon邮件菜单功能
以隐藏功能为例
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{//隐藏
this.notifyIcon1.Visible = false;
}
状态栏显示效果
6.闪烁效果
为实现闪烁效果,本文中使用了timer控件
代码实现
private void timer1_Tick(object sender, EventArgs e)
{
if (satus)
notifyIcon1.Icon = normal;
else
notifyIcon1.Icon = blank;
satus = !satus;
}
可在timer控件中设置其闪烁间隔周期。
本文中所使用的两个图片
来源:https://blog.csdn.net/qq_25086397/article/details/80775346


猜你喜欢
- 首先:因为工作需要,需要对接socket.io框架对接,所以目前只能使用netty-socketio。websocket是不支持对接sock
- 一、使用策略枚举来优化if-else看到网上蛮多人推荐使用策略模式来优化if-else,但我总觉得,搞一堆策略类来优化大批量if-else,
- 对于随机数,大家都知道,计算机不 可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果
- 本文实例分析了C#中out保留字的用法,分享给大家供大家参考。具体用法分析如下:C#中的out保留字表示这个变量要回传值,最简单的应用是除法
- 环境准备JDK 1.8,Springboot 2.1.3.RELEASE,spring-boot-starter-aop.2.1.4.REL
- 本文实例为大家分享了java实现单词小游戏的具体代码,供大家参考,具体内容如下介绍公司最近有一个竞技场项目,里面有一个单词小游戏。游戏大概就
- 前言相信大家在java中用到的最多的时间类莫过于 java.util.Date了,由于Date类中将getYear() , getMonth
- 其实本没有没打算写这篇的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式?,询问主管他居然告诉我用HT
- 缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢?
- 一.什么是CASCAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作:针对一个变量,首先比较它的内存值与某个期
- 前言我们在首次使用内容类 App 的时候,不少都会让我们选择个人偏好。这种通常是通过标签来实现,比如列举出一系列的技术栈,然后让我们选择。通
- (注意:本文基于JDK1.8)前言元素在存储到内存中,当我们需要使用在内存中存储的元素,这就涉及到在内存中查找元素,今天一起学习Vector
- 一、Spinner的两种展示样式下拉列表的展示方式有两种,一种是在当前下拉框的正下方展示列表,此时把spinnerMode属性设置为drop
- 我就废话不多说了,大家还是直接看代码吧~import java.io.UnsupportedEncodingException;import
- 出于安全考虑,在后台与前台进行数据传输时,往往不会直接传输实体模型,而是使用Dto(Data transfer object 数据传输对象)
- 前言有时候我们会在属性注入的时候添加@Lazy注解实现延迟注入,今天咱们通过阅读源码来分析下原因一、一个简单的小例子代码如下:@Servic
- 前言随着网络技术的发展、计算机应用水平广泛提高,原来系统的时效性、数据的正确性、操作的方便性上都存在不足,已影响到系统的正常使用。经过考察比
- 目录示例1: EncryptByAes示例2: main示例3: wrapperPublicPriviteKeyTest示例4: initH
- 一.理论准备KMP算法为什么比传统的字符串匹配算法快?KMP算法是通过分析模式串,预先计算每个位置发生不匹配的时候,可以省去重新匹配的的字符
- springboot整合jwt步骤:1、登录时,验证账号和密码成功后,生成jwt,返回给前端;2、前端接收后保存,再做其他操作,比如增删改查