打印本文 打印本文 关闭窗口 关闭窗口
VB.NET编程之托盘程序篇
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2082  更新时间:2009/4/23 19:00:54  文章录入:mintao  责任编辑:mintao
       Me.WindowState = FormWindowState.Normal
        Me.Show ( )
    End Sub
End Class
''''启动程序
Module Module1
Sub Main ( )
  Application.Run ( new Form1 ( ) )
End sub
End Module

Form2.vb经过了下列命令编译、连接后:

Vbc /r:system.dll /r:system.windows.froms.dll /r:system.drawing.dll form2.vb

就可以得到Form2.exe,下图是From2.exe运行的界面:



 

图01:托盘程序运行界面01



 

动态托盘程序的编写过程



动态托盘程序中的托盘图标之所以能够呈现动画效果,是因为程序中的一个定时器组

件每隔一段时间都不断切换托盘图标。本文是通过二个图标的切换来表现动态效果的,读者如果有好的、连续的图标,也可以设定多个图标的切换,而这只需要修改Timer1定时器中的"Tick"事件中的代码就可以了。下面是此动态托盘程序的具体编制步骤:

要创建程序中的实例和变量:

Friend WithEvents NotifyIcon1 As System.Windows.Forms.NotifyIcon
    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
    ''''创建Icon实例,用以切换图标
    Friend Icon1 = New Icon ( "icon1.ico" ) 
    Friend Icon2 = New Icon ( "icon2.ico" ) 
    ''''为不同图标的切换提供标识符
    Dim BeginFlag As Boolean = True
    ''''定时器
    Friend WithEvents Timer1 As System.Windows.Forms.Timer


初始化实例:

Me.components = New System.ComponentModel.Container ( ) 
        Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon ( Me.components ) 
        Me.ContextMenu1 = New System.Windows.Forms.ContextMenu ( ) 
        Me.MenuItem1 = New System.Windows.Forms.MenuItem ( ) 
        Me.MenuItem2 = New System.Windows.Forms.MenuItem ( ) 
        Me.MenuItem3 = New System.Windows.Forms.MenuItem ( ) 
        Me.Timer1 = New System.Windows.Forms.Timer ( Me.components ) 
        Me.NotifyIcon1.ContextMenu = Me.ContextMenu1
        Me.NotifyIcon1.Text = "VB.NET的托盘程序"
        Me.NotifyIcon1.Visible = True
	''''设定托盘程序托盘区位置显示缺省图标
        Me.NotifyIcon1.Icon = Icon1
	''''在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 = "退出"
        Me.AutoScaleBaseSize = New System.Drawing.Size ( 6 , 14 ) 
        Me.ClientSize = New System.Drawing.Size ( 292 , 273 ) 
        Me.Name = "Form1"
        Me.ShowInTaskbar = False
        Me.Text = "VB.NET之WinForm编程动态托盘程序"
        Me.WindowState = System.Windows.Forms.FormWindowState.Minimized


定义托盘程序中菜单项对应的事件,以及具体的处理方法:

''''开始托盘图标的转动
    Private Sub MenuItem1_Click ( ByVal sender As System.Object , 
    ByVal e As System.EventArgs )  Handles MenuItem1.Click
        Timer1.Enabled = True
    End Sub
    ''''停止托盘图标的转动
    Private Sub MenuItem2_Click ( ByVal sender As Object ,
    ByVal e As System.EventArgs )  Handles MenuItem2.Click
        Timer1.Enabled = False
    End Sub
    ''''关闭程序,清除托盘资源
    Private Sub MenuItem3_Click ( ByVal sender As Object , 
    ByVal e As System.EventArgs )  Handles MenuItem3.Click
        NotifyIcon1.Dispose ( ) 
        Application.Exit ( ) 
    End Sub
    ''''根据标识符,来确定托盘图标类型
    Private Sub Timer1_Tick ( ByVal sender As Object ,
    ByVal e As System.EventArgs )  Handles Timer1.Tick
        If BeginFlag = True Then
            NotifyIcon1.Icon = Icon2
            BeginFlag = False
        Else
            NotifyIcon1.Icon = Icon1
            BeginFlag = True
        End If
    End Sub


至此编写动态托盘程序的主要步骤就介绍完了,和上面的静态托盘程序相同,在运行此程序的时候必须保证此程序当前目录存在二个Icon文件,并且名称为"Icon1.ico"和"Icon2.ico"。这里并没有给出动态托盘程序的完整代码清单,读者只需要把上面这些关键步骤的代码覆盖到Form2.vb中的相应位置就可以得到动态托盘程序的源程序文件Form3.vb。这应该不算很难,下面是编译Form3.vb的命令:

Vbc /r:system.dll /r:system.windows.froms.dll /r:system.drawing.dll form2.vb


成功编译、连接后就得到Form3.exe,下图是Form3.exe的运行界面:



 

图02:托盘程序运行界面02



 

总结



托盘程序是现在比较流行的一种程序类型。本文中介绍的二个程序,也是托盘程序中比较典型的二个,希望对各位了解并掌握编写托盘程序有所帮助。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口