将上下文菜单左键单击事件添加到通知图标

Fau*_*Orc 6 .net c# vb.net desktop-application

任务栏中有一个notifyIcon,用户左键单击它,如何显示左键单击后的上下文菜单?

另外,如何让它在其他地方再次左舔时消失?

提前致谢...!

小智 4

如果您使用 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
Run Code Online (Sandbox Code Playgroud)

让它在左键单击时关闭有点不同,如果您的表单仍然打开,您可以在主表单中使用单击事件

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
Run Code Online (Sandbox Code Playgroud)

如果没有,那么我建议您将鼠标移动与单击联系起来,即当鼠标离开菜单时它会关闭

 Private Sub ContextMenuStrip1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContextMenuStrip1.MouseLeave
    ContextMenuStrip1.Close()


End Sub
Run Code Online (Sandbox Code Playgroud)

希望这就是您正在寻找的