Csharp/C#教程:如果您点击或点击通知图标,如何获得不同的上下文菜单?分享


如果您点击或点击通知图标,如何获得不同的上下文菜单?

我有一个基于系统托盘的应用程序。 如果你右键单击它我有一个很好的上下文菜单但是我想要一个不同的上下文菜单显示你是否左键单击它。 现在我把不同的菜单显示出来

private void niTrayIcon_MouseClick(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { cmsTrayLeftClick.Show(Cursor.Position); } } 

这使得菜单显示但单击菜单不会使其消失,使菜单消失的唯一方法是单击项目或rt单击托盘图标。

我也想出了这个黑客,但它确实感觉这是正确的方法。

 private void niTrayIcon_MouseClick(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { niTrayIcon.ContextMenuStrip = cmsTrayLeftClick; MethodInfo mi = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic); mi.Invoke(niTrayIcon, null); niTrayIcon.ContextMenuStrip = cmsTrayRtClick; } } 

这是正确的做法还是有更优雅的方式?

因为没有其他人发布了一种有效的方法,我想正确的做法是

上述就是C#学习教程:如果您点击或点击通知图标,如何获得不同的上下文菜单?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 private void niTrayIcon_MouseClick(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { niTrayIcon.ContextMenuStrip = cmsTrayLeftClick; MethodInfo mi = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic); mi.Invoke(niTrayIcon, null); niTrayIcon.ContextMenuStrip = cmsTrayRtClick; } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1040515.html

(0)
上一篇 2022年1月28日
下一篇 2022年1月28日

精彩推荐