托盤程序是指這樣一類程序:當程序運行后,會在系統的托盤區(也有說是狀態區域)創建此程序的圖標,使用者可以通過點擊圖標出現的菜單來控制程序的運行狀態。托盤程序有很多優點,如不占屏幕,后臺運行,便于控制等。所以現在越來越多的程序都做成了托盤程序。在VB.NET中,編寫托盤程序是比較方便和簡單的。這是因為VB.NET沒有自身類庫,它所使用的類庫是.Net框架中為所有.Net平臺開發語言提供的公用類庫——.Net FrameWork SDK。在這個類庫中,為編寫托盤程序提供了具體的類,調用這些類就可以實現程序的托盤效果了。從而也就擺脫了它的前身VB在處理這類問題時候的煩瑣。下面就通過二個具體例子來了解并掌握如何用VB.NET編寫托盤程序。
本文程序的設計及運行環境
(1)Windows 2000 Service
(2)Net Framework SDK 正式版
靜態托盤程序的編寫過程
所謂靜態托盤程序是指程序運行后,在系統托盤區的圖標處于靜止狀態的托盤程序。動態托盤程序正好與之相反,它是指在系統托盤區圖標呈現動畫效果的一類托盤程序。下面就來探討一下VB.NET是如何實現靜態托盤程序。
.Net FrameWork SDK為編寫托盤程序提供了一個組件:NotifyIcon組件。NotifyIcon組件是一個WinForm組件,位于命名空間"System.Windows.Forms"中,在VB.NET程序中,只要創建一個NotifyIcon組件的實例,并且對NotifyIcon實例的"Icon"屬性賦值,這樣一個簡單的托盤程序就完成了。下面就是這個簡單托盤程序對于的代碼(Form1.vb):
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗體設計器生成的代碼 "
Public Sub New ( )
MyBase.New ( )
'該調用是 Windows 窗體設計器所必需的。
InitializeComponent ( )
'在 InitializeComponent ( ) 調用之后添加任何初始化
End Sub
'窗體重寫處置以清理組件列表。
Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean )
If disposing Then
If Not ( components Is Nothing ) Then
components.Dispose ( )
End If
End If
MyBase.Dispose ( disposing )
End Sub
'Windows 窗體設計器所必需的
Private components As System.ComponentModel.IContainer
'注意:以下過程是 Windows 窗體設計器所必需的
'可以使用 Windows 窗體設計器修改此過程。
'不要使用代碼編輯器修改它。
Friend WithEvents NotifyIcon1 As System.Windows.Forms.NotifyIcon
'創建一個NotifyIcon實例
Friend TrayIcon = New Icon ( "Tray.ico" )
'創建一個Icon實例
<System.Diagnostics.DebuggerStepThrough ( ) >
Private Sub InitializeComponent ( )
Me.components = New System.ComponentModel.Container ( )
Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon ( Me.components )
Me.NotifyIcon1.Text = "NotifyIcon1"
Me.NotifyIcon1.Visible = True
'對NotifyIcon實例的Icon屬性賦值,完成簡單托盤程序
Me.NotifyIcon1.Icon = TrayIcon
Me.AutoScaleBaseSize = New System.Drawing.Size ( 6 , 14 )
Me.ClientSize = New System.Drawing.Size ( 292 , 273 )
Me.Name = "Form1"
Me.Text = "Form1"
End Sub
#End Region
End Class
'啟動程序
Module Module1
Sub Main ( )
Application.Run ( new Form1 ( ) )
End sub
End Module
但是這個托盤程序還不是真正意義上的托盤程序,因為它還有很多具體功能沒有實現,下面就列出這些功能,并介紹具體的實現方法
(1).托盤程序是隱藏窗口后,程序不應該顯示在任務欄中,并且一般運行后都不顯示窗口:
這是通過設定窗體的屬性來完成的,具體如下:
'設定程序不應該顯示在任務欄
Me.ShowInTaskbar = False
'設定程序運行后最小化
Me.WindowState = System.Windows.Forms.FormWindowState.Minimized