本帖最后由 信息发布软件 于 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() |