【VB.NET】实现动态托盘图标

【VB.NET】实现动态托盘图标,第1张

概述前言 NotifyIcon 代码实现 需要的控件 定义类 说明 属性设置 方法类 对于窗体主要控件的编写 对于NotifyIcon的编写 对于Timer的编写 总结 前言 有时候觉得也想给自己做的小软件添加一些小特色,但是总是不知道怎么实现,偶尔看到一些技术类的杂文,但也都是淡淡一描,没有真正的味道,前几天在一本书上看到了一些程序优化的内容,感觉实现类似QQ动态托盘的小技巧挺实用的,总结一下分享给 前言 NotifyIcon 代码实现 需要的控件 定义类 说明 属性设置 方法类 对于窗体主要控件的编写 对于NotifyIcon的编写 对于Timer的编写 总结 前言

有时候觉得也想给自己做的小软件添加一些小特色,但是总是不知道怎么实现,偶尔看到一些技术类的杂文,但也都是淡淡一描,没有真正的味道,前几天在一本书上看到了一些程序优化的内容,感觉实现类似QQ动态托盘的小技巧挺实用的,总结一下分享给大家。

NotifyIcon

对于经常接触windows开发的人来说,NotifyIcon并不陌生,因为VS提供了系统托盘图标的显示控件,而这个控件的名字就叫做NotifyIcon。

但是对于从VB6.0刚刚转到.NET开发环境下的小伙伴们来说就得好好学习一下VS带给开发者的全新环境了。在VB6.0中不曾有过的一些控件或者需要借助第三方开发的控件,VS.NET已经将大部分都集成在环境当中了,这无疑对开发是一个莫大的帮助。

好了,废话不多说,我们开始让我们程序显示在托盘中吧!

代码实现 程序的界面如下:
需要的控件

窗体、按钮、Timer、NotifyIcon、Label各一个,基本上这些就足够了

如果你想使用右键菜单的话,那么还可以加一个ContextMenuStrip

定义类 说明

我们的大体的思路是这样的,首先,通过让程序运行,然后使托盘显示我们定义的图标

其次,通过右键菜单来让托盘图标闪烁,并且实现类似QQ小企鹅似的动态效果

同时,通过右键菜单调节托盘图标闪烁的快慢以及是否退出程序

窗体的全局变量如下

'定义两个图标'    private MyIcon1 As Icon    private MyIcon2 As Icon    '定义切换标识'    private MyFlag As Boolean    '定义窗体是否在显示的标识'    private MyWndShow As Boolean
属性设置 需要注意的是,对于FORM和NotifyIcon的属性设置都需要在ContextMenuStrip中指向ContextMenuStrip1 方法类 在窗体运行时导入两个图标文件(需要将下载好的图标文件放入该项目文件夹的BIN\DEBUG目录下,或者自行设定路径)并且用布尔值标记两个图标和窗体。 对于窗体主要控件的编写 代码如下:
private Sub New()Mybase.New()InitializeComponent()'开始标记'MyFlag = TrueMyWndShow = TrueTry    MyIcon1 = New Icon("1.ico")  '引号中为图标名称和路径'    MyIcon2 = New Icon("2.ico")Catch ex As Exception    MessageBox.Show("错误" + ex.Message,"动态系统托盘-错误")end Tryend sub
对于右键菜单的编辑如下(具体情况可以按照自己的喜好来编写,所以下面的代码只写出菜单的代号和具体的作用):
Private Sub 动画图标开始ToolStripMenuItem_Click(sender As Object,e As EventArgs) Handles 动画图标开始ToolStripMenuItem.Click        '开始播放动画'        Me.Timer1.Start()        Me.增加ToolStripMenuItem.Enabled = TrueEnd Sub
Private Sub 动画图标结束ToolStripMenuItem_Click(sender As Object,e As EventArgs) Handles 动画图标结束ToolStripMenuItem.Click    '托盘图标停止闪烁'    Me.Timer1.Stop()End SubPrivate Sub 退出程序ToolStripMenuItem_Click(sender As Object,e As EventArgs) Handles 退出程序ToolStripMenuItem.Click    '退出程序'    EndEnd Sub
Private Sub 增加ToolStripMenuItem_Click(sender As Object,e As EventArgs) Handles 增加ToolStripMenuItem.Click    '增加闪烁速度'    '这里所有的数值都可以根据自己的需要进行修改'    If Me.Timer1.Interval > 20 Then        Me.Timer1.Interval -= 10           If Me.Timer1.Interval <= 10 Then            Me.Timer1.Interval = 10            Exit Sub        End If    End IfEnd SubPrivate Sub 减慢ToolStripMenuItem_Click(sender As Object,e As EventArgs) Handles 减慢ToolStripMenuItem.Click    '减慢速度'    Me.Timer1.Interval += 10End Sub
对于NotifyIcon的编写

代码如下:

'单击鼠标,让主界面隐藏'Private Sub NotifyIcon1_Click(sender As Object,e As MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick        If (My_ShowWnd = True) Then            '隐藏主界面'            Me.Visible = False            My_ShowWnd = False        Else            Me.Visible = True            My_ShowWnd = True        End If    End Sub'双击显示主界面'Private Sub NotifyIcon1_DoubleClick(sender As Object,e As EventArgs) Handles NotifyIcon1.DoubleClick    Me.Visible = True    My_ShowWnd = True    End Sub
对于Timer的编写
Private Sub Timer1_Tick(sender As Object,e As EventArgs) Handles Timer1.Tick    If Not (My_Icon1 Is nothing) And Not (My_Icon2 Is nothing) Then        If My_Flag = True Then            NotifyIcon1.Icon = My_Icon2            My_Flag = False        Else            NotifyIcon1.Icon = My_Icon1            My_Flag = True        End If    End IfEnd Sub
总结

好了,到这里我们的系统托盘图标就做好了,运行起来就去试试吧。

总结

以上是内存溢出为你收集整理的【VB.NET】实现动态托盘图标全部内容,希望文章能够帮你解决【VB.NET】实现动态托盘图标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1267379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存