C# 消息框时托盘上下文菜单不隐藏
在我的应用程序中,我有与应用程序的托盘图标关联的上下文菜单,当用户单击“关于”菜单项时,它会显示消息框。消息框仍然可见,用户再次右键单击托盘图标,弹出菜单,用户单击上下文菜单以外的其他位置应该消失,但事实并非如此,它仍然显示。
In my application I have context menu which is associated with tray icon of the application, when user click on About menu item, it display the message box. Message box is still visible, user right click again on tray icon, menu pop up, user click somewhere else than context menu should disappear, but it didn't, it is still displayed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一个错误。可能在 Windows 中,TrackPopupMenu 的 MSDN 库文档记录了一个非常类似的问题。除了避免使用 MessageBox 之外,我没有看到明显的解决方法。创建一个小表单作为您的“关于”框。使用 Show() 方法显示它。
That's a bug. Probably in Windows, the MSDN Library documentation for TrackPopupMenu documents a very similar problem. I don't see an obvious workaround, other than avoiding using MessageBox. Create a little form to be your About box. Display it with the Show() method.
您可以使用 SendKeys.Send("{ESC}");
当用户点击其他地方时触发事件。
You could use SendKeys.Send("{ESC}");
in the trigger event when the user clicks somewhere else.
我知道它已经过时了,但使用所有最新的库和 .NET 8.0 时,这种情况仍然发生在我身上。您可以在调用 MessageBox.Show 之前强制上下文菜单消失
I know it's old but it's still happening to me with all the latest libraries and .NET 8.0. You can force the context menu to disappear right before calling MessageBox.Show