【发布时间】:2011-02-19 14:40:29
【问题描述】:
一个notifyIcon在任务栏下,用户左键点击,左键后怎么显示contextmenu?
另外,如何让它在其他任何地方再次左舔时消失?
在此先感谢...!
【问题讨论】:
标签: c# .net vb.net desktop-application
一个notifyIcon在任务栏下,用户左键点击,左键后怎么显示contextmenu?
另外,如何让它在其他任何地方再次左舔时消失?
在此先感谢...!
【问题讨论】:
标签: c# .net vb.net desktop-application
如果您使用 Visual Studio,这很容易,只需在 IDE 中向表单添加通知图标,然后添加上下文菜单项,
为了看到通知图标,它需要有一个图标(.ico)并且上下文菜单需要填充一个菜单结构。
在通知图标属性中,将 ContectMenuStrip 属性设置为您的上下文菜单,即 Contextmenue1。 默认情况下,如果用户右键单击该图标,它将显示菜单并在单击其他位置时将其隐藏,
如果您确实需要通过左键单击来实现,那么您需要编写代码
Private Sub NotifyIcon1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotifyIcon1.Click
ContextMenuStrip1.Show(Control.MousePosition)
End Sub
让它在左键单击时关闭有点不同,如果您的表单仍然打开,您可以在主表单中使用点击事件
Private Sub Form1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick
If ContextMenuStrip1.Visible = True Then
ContextMenuStrip1.Visible = False
End If
End Sub
如果不是,那么我建议您将鼠标移动绑定到单击而不是单击,即当鼠标离开菜单时它会关闭
Private Sub ContextMenuStrip1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContextMenuStrip1.MouseLeave
ContextMenuStrip1.Close()
End Sub
希望这就是你要找的东西
【讨论】: