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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
RocketMQ源码分析之Broker过期消息清理机制
Servlet3.0实现文件上传的方法
![](https://img.aspxhome.com/file/2023/3/58143_0s.png)
Spring Data Jpa框架最佳实践示例
Java8新特性之类型注解_动力节点Java学院整理
C#使用doggleReport生成pdf报表的方法
C# 最基础知识介绍--多态
![](https://img.aspxhome.com/file/2023/1/79111_0s.jpg)
android主线程和子线程之间消息传递详解
Java设计模式七大原则之里氏替换原则详解
![](https://img.aspxhome.com/file/2023/8/61868_0s.jpg)
Spring Boot 2.X 快速集成单元测试解析
![](https://img.aspxhome.com/file/2023/3/61503_0s.jpg)
SpringBoot 集成 activiti的示例代码
![](https://img.aspxhome.com/file/2023/8/62238_0s.png)
JAVA实现的简单万年历代码
华为鸿蒙系统应用开发工具 DevEco Studio的安装和使用图文教程
![](https://img.aspxhome.com/file/2023/3/72333_0s.png)
springBoot Junit测试用例出现@Autowired不生效的解决
![](https://img.aspxhome.com/file/2023/0/73120_0s.png)
Android Loop机制中Looper与handler详细分析
![](https://img.aspxhome.com/file/2023/3/90183_0s.png)
Java动态代 理分析及简单实例
详谈Java中的Object、T(泛型)、?区别
Jmeter如何添加循环控制器
![](https://img.aspxhome.com/file/2023/8/76508_0s.png)
Java 如何将表格数据导入word文档中
spring-boot使用AOP统一处理日志
![](https://img.aspxhome.com/file/2023/6/77056_0s.jpg)
java 使用BigDecimal进行货币金额计算的操作
![](https://img.aspxhome.com/file/2023/9/90019_0s.jpg)