VB.net怎么最小化到系统托盘
发布时间:2020-12-17 07:40:45 所属栏目:百科 来源:网络整理
导读:小孩放假了,天天在电脑上看动画片,时间有点长,对小孩视力和身体都不好,准备自己写个有个性的保护程序,就是固定时间直接播放声音,并锁定屏幕一定间隔,过后程序自动最小化到托盘。现在遇到问题,不知道vb.net程序 怎么最小化到系统托盘,百度到一篇资料
.Net FrameWork SDK为编写托盘程序提供了一个组件:NotifyIcon组件。NotifyIcon组件是一个WinForm组件,位于命名空间"System.Windows.Forms"中,在VB.NET程序中,只要创建一个NotifyIcon组件的实例,并且对NotifyIcon实例的"Icon"属性赋值,这样一个简单的托盘程序就完成了。下面就是这个简单托盘程序对于的代码(Form1.vb):
但是这个托盘程序还不是真正意义上的托盘程序,因为它还有很多具体功能没有实现,下面就列出这些功能,并介绍具体的实现方法 (1).托盘程序是隐藏窗口后,程序不应该显示在任务栏中,并且一般运行后都不显示窗口: 这是通过设定窗体的属性来完成的,具体如下:
(2).定义托盘程序中的菜单和相关事件: 往NotifyIcon实例中添加菜单,首先要创建ContextMenu实例,此实例主要作用是表示快捷菜单,其中的菜单项是通过创建MenuItem实例来实现,托盘程序中的菜单有几个菜单项,就创建几个MenuItem实例。然后把这些菜单项加入到ContextMenu实例,并把此实例赋值给NotifyIcon实例的ContextMenu属性,这样托盘程序右键点击弹出的菜单就完成了。下面是具体代码: |
创建ContextMenu实例和MenuItem实例: Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem2 As System.Windows.Forms.MenuItem Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem |
把这些菜单项加入到ContextMenu实例,并把ContextMenu实例赋值给NotifyIcon实例的ContextMenu属性:
Me.MenuItem1 = New System.Windows.Forms.MenuItem ( ) Me.MenuItem2 = New System.Windows.Forms.MenuItem ( ) Me.MenuItem3 = New System.Windows.Forms.MenuItem ( ) Me.NotifyIcon1.ContextMenu = Me.ContextMenu1 Me.NotifyIcon1.Text = "VB.NET的托盘程序" Me.NotifyIcon1.Visible = True '设定托盘程序托盘区位置显示图标 Me.NotifyIcon1.Icon = TrayIcon '在ContextMenu实例中加入菜单项 Me.ContextMenu1.MenuItems.Add ( Me.MenuItem1 ) Me.ContextMenu1.MenuItems.Add ( Me.MenuItem2 ) Me.ContextMenu1.MenuItems.Add ( Me.MenuItem3 ) Me.MenuItem1.Index = 0 Me.MenuItem1.Text = "显示窗体" Me.MenuItem2.Index = 1 Me.MenuItem2.Text = "隐藏窗体" Me.MenuItem3.Index = 2 Me.MenuItem3.Text = "退出"
当把ContextMenu实例赋值给NotifyIcon实例的ContextMenu属性后,托盘程序的缺省状态是当鼠标右击托盘图标,就会弹出对应的菜单。这时就可以对其中的每一个菜单项定义相应的事件以及具体的处理方法。一个完整的静态托盘程序的编写过程就完成了。
最后要请读者注意的是,由于本文中的托盘程序的图标并不是通过创建资源文件来实现的,而是通过创建Icon实例完成的。所以在程序运行的时候,必须在程序的当前目录存在一个图标文件,并且此图标文件的名称为"Tray.ico"。下面是这个静态托盘程序的完整的代码清单
(Form2.vb):
Public Class Form1
#Region " Windows 窗体设计器生成的代码 "
'设定托盘程序托盘区位置显示图标
'在ContextMenu实例中加入菜单项