执行某些操作后显示通知图标上下文菜单

本文关键字:通知 图标 上下文 菜单 显示 操作 执行 | 更新日期: 2023-09-27 17:53:05

我需要显示上下文菜单为我的通知图标上下文菜单在执行一些操作后,而不是右键单击后。

它完美地为左键点击:

sysTrayIcon.MouseClick += OnSysTrayClicked;
private static void OnSysTrayClicked(Object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        PerformActions();
        MethodInfo oMethodInfo = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic);
        oMethodInfo.Invoke(sysTrayIcon, null);
    }
}

但是右击仍然是自动处理的,并且在右击时显示相关的ContextMenuStrip。是否有一些方法来覆盖我的事件处理程序?

执行某些操作后显示通知图标上下文菜单

有两个选项

选项A:不要将上下文菜单分配给this.ContextMenuStrip。随时手动打开上下文菜单。注意,那条带子。上衣和脱衣。左边必须是绝对的屏幕坐标

选项B:取消分配。如果右键单击OnMouseDown,则剥离OnMouseDown,并重新分配OnMouseUp。