本帖最后由 信息发布软件 于 2017-5-15 23:44 编辑 
 本文所使用的编程环境是Microsoft Visual Studio 2005,首先打开Visual Studio。在文件(File)菜单上,单击新建项目(New Project)。在新建项目(New Project)对话框的模板(Templates)窗格中,单击Windows应用程序(WindowsApplication)。单击确定(ok)。
  想要将窗体图标最小化时自动隐藏到任务栏,我们可以使用一个控件,这个控件的名字叫做NotifyIcon控件,打开左侧的工具箱找到NotifyIcon控件直接将它拖到窗体上。把NotifyIcon的Icon属性设一下,当然ICON属性你可以设置一个好看的图标。
                        
图1
  接下来单击Form1窗体,进入属性设置。把Form的WindowState设成Minimized;ShowInTaskbar属性设成False。
                        
图2
  
接下来我们就要输入代码了。在Form的Resize代码事件中,
  Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize 
If Me.WindowState = FormWindowState.Minimized Then 
Me.Hide() 
End If 
End Sub
  代码的意思是让窗体最小化的时候就自动隐藏到状态栏。
  这样运行的时候窗体就会自动隐藏,出现在状态栏了。
  想双击图标的时候显示窗体的话可以设置NotifyIcon控件的DoubleClick代码。
  代码如下:
  Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick 
Me.ShowInTaskbar = True 
Me.Show() 
Me.WindowState = FormWindowState.Normal 
End Sub
  如果我们想创建右键菜单的话,我们可以在窗体上添加一个ContextMenustrip控件,用NotifyIcon的ContextMenu属性进行关联。
  在工具箱中选择菜单和工具栏,直接将ContextMenu控件拖到窗体上进入属性设置,输入相应菜单关键字(自己想输入的文字如下图的软件版本等)。
                        
图3
  然后单击窗体的NotifyIcon1控件,设置属性,在contextmenustrip处选择刚才编辑过的右键菜单ContextMenustrip1进行关联。
                        
图4  然后按F5运行程序,点击窗体最小化按钮,窗体的图标自动隐藏到状态栏了。点击右键你可以看到精美的右键菜单。
    以前我用的是Form1的SizeChanged事件发生时,判断Me.WindowState是否是Minimized,如果是,就Me.Hide()。然后在托盘图标的菜单单击事件里面Me.Show()  这个是有问题的,show了以后,Form1不显示在最前端,需要鼠标点一下任务栏。今天找到一个办法,效果很好:
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load
        Me.Opacity = 0% '全透明,这个状态下即使有鼠标点击事件也会无效,点不到上面去,效果和hide差不多
        Me.ShowInTaskbar = False '不显示在任务栏
    End Sub
    Private Sub 显示窗口ToolStripMenuItem_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles 显示窗口ToolStripMenuItem.Click
        Me.Opacity = 100% '不透明
        Me.ShowInTaskbar = True '在任务栏显示
    End Sub
End Class
VB实现自身窗口最大化、最小化显示,用Me.WindowState来实现。关于WindowState的几种状态:WindowState = 0指正常状态,WindowState = 1是指窗口最小化,WindowState = 2是指窗口最大化显示,用此可实现窗口标题栏右下角最小化、最大化按钮点击后的效果,下面是具体的VB实例代码:
view source
print?
 |    StartUpPosition =   3 '窗口缺省  | 
 |    Begin VB.CommandButton Command4  | 
 |    Begin VB.CommandButton Command3  | 
 |    Begin VB.CommandButton Command2  | 
 |    Begin VB.CommandButton Command1  | 
 | Attribute VB_Name = "Form1"  | 
 | Attribute VB_GlobalNameSpace = False  | 
 | Attribute VB_Creatable = False  | 
 | Attribute VB_PredeclaredId = True  | 
 | Attribute VB_Exposed = False  | 
 | Private Sub Command1_Click()  | 
55  | Private Sub Command2_Click()  | 
59  | Private Sub Command3_Click()  | 
63  | Private Sub Command4_Click()  |