有时候觉得也想给自己做的小软件添加一些小特色,但是总是不知道怎么实现,偶尔看到一些技术类的杂文,但也都是淡淡一描,没有真正的味道,前几天在一本书上看到了一些程序优化的内容,感觉实现类似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】实现动态托盘图标所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)