您现在的位置: PQ秀秀网 >> 网络编程 >> ASP.NET编程 >> 正文 用户登录 新用户注册
vb.net入门--NotifyIcon 组件的使用
作者:佚名    教程来源:不详    点击数:加载中...    更新时间:2008-4-30 字体:[ ]
添加到收藏: 添加到百度收藏  收藏到QQ书签  添加到雅虎收藏  添加到新浪ViVi  添加到天极网摘  添加到和讯网摘

在vb6.0中,我们想要在把我们的程序以一个小图标显示在Windows桌面的应用程序托盘区(即任务栏的状态通知区域,以下都称系统托盘区),需要使用到复杂难懂的API函数来完成,而且在测试的时候还经常导致应用程序崩溃。现在用vb.net就好办多了,vb.net提供了一个 NotifyIcon 组件来让我们可以轻松完成这个工作。

NotifyIcon 组件在vb.net工具箱中如下图一所示:

vb.net入门--NotifyIcon 组件的使用(图一)

当从工具箱中把 NotifyIcon 组件拖放到窗体上时,NotifyIcon 组件显示在窗体下方的组件栏中。一个 NotifyIcon 组件在系统托盘区对应显示一个图标,想要显示多个图标的话,则需要在窗体上布置多个 NotifyIcon 组件。

一、NotifyIcon 组件常用属性和事件

NotifyIcon 组件的属性和方法比较少。

1、ContextMenu 属性:用于指定与 NotifyIcon 组件相关联的上下文菜单

2、Icon 属性:用于设置 NotifyIcon 组件在系统托盘区显示的图标,注意它只支持ICO图标文件。

3、Text 属性:设置当鼠标移动到图盘区的小图标是显示的提示文本。

4、Visible 属性:用于指示在系统托盘区显示小图标是否可见。

NotifyIcon 组件只响应的鼠标事件。

二、示例

我们这里来演示如何利用 NotifyIcon 组件为自己的应用程序建立一个系统托盘图标。

1、首先把一个 NotifyIcon 组件,一个上下文菜单组件 ContextMenu(关于菜单控件的使用点击看这里)。

2、为 NotifyIcon 组件设置显示的图标:

在属性窗口中选择"Icon"属性,然后单击vb.net入门--NotifyIcon 组件的使用(图二),在本地硬盘上找到合适的图标即可,也可以使用代码在合适的位置添加,代码添加如下所示:(假设图标文件存放在C盘下)

NotifyIcon1.Icon = New System.Drawing.Icon("c:\Icon.ico")

3、关联右键菜单:

使用 ContextMenu 属性来关联它的右键菜单。在属性窗口的"ContextMenu"中选择 ContextMenu1 组件

也可以在窗体的New事件中进行关联,代码如下:

NotifyIcon1.ContextMenu = ContextMenu1

4、为右键菜单 ContextMenu1 组件添加菜单项。如下图二所示:

vb.net入门--NotifyIcon 组件的使用(图三)

并为每个菜单项添加代码,完整的菜单项代码如下所示:

Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click

Me.Show()'显示窗体

End Sub

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click

Me.Hide()'隐藏窗体

End Sub

为了让"显示"菜单在窗体时显示状态下不可用,"隐藏"菜单在窗体隐藏状态下不可用,我们在ContextMenu1的Popup事件中加入如下代码:

Private Sub ContextMenu1_Popup(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContextMenu1.Popup

If Me.Visible = False Then

MenuItem1.Enabled = True

MenuItem2.Enabled = False

ElseIf Me.Visible = True Then

MenuItem1.Enabled = False

MenuItem2.Enabled = True

End If

End Sub

运行,将会在系统托盘区显示我们的图标,如下图三所示:

vb.net入门--NotifyIcon 组件的使用(图四)

我们通过弹出菜单上的"隐藏"\"显示"就可以进行相应的操作了。

以上我们实现的右键菜单的功能,我们还可以在图标的单击事件中响应鼠标的左键事件,下面的例子演示了如何实现单击弹出左键菜单。

因为 ContextMenu 组件是默认关联鼠标的右击事件的,所以我们需要通过其它的途径来实现左击菜单。

现在窗体上建立一个名为 ContextMenu2 的菜单,菜单项如下图四所示:
vb.net入门--NotifyIcon 组件的使用(图五)

由于不能在notifyIcon上直接显示上下文菜单,只有创建一个Control作为容器来显示菜单,详细代码如下所示:

Private Sub NotifyIcon1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDown

If e.Button = MouseButtons.Left Then

Dim control As New Control(Nothing, control.MousePosition.X, control.MousePosition.Y, 1, 1)

control.Visible = True

control.CreateControl()

Dim pos As New Point(0, 0) '这里的两个数字要根据你的上下文菜单大小适当地调整

Me.ContextMenu2.Show(control, pos)

End If

End Sub

 

教程录入:andy    责任编辑:andy 
  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)