C# 消息框时托盘上下文菜单不隐藏

发布于 2024-10-15 04:08:33 字数 120 浏览 2 评论 0原文

在我的应用程序中,我有与应用程序的托盘图标关联的上下文菜单,当用户单击“关于”菜单项时,它会显示消息框。消息框仍然可见,用户再次右键单击托盘图标,弹出菜单,用户单击上下文菜单以外的其他位置应该消失,但事实并非如此,它仍然显示。

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怪我入戏太深 2024-10-22 04:08:33

这是一个错误。可能在 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.

泡沫很甜 2024-10-22 04:08:33

您可以使用 SendKeys.Send("{ESC}");
当用户点击其他地方时触发事件。

You could use SendKeys.Send("{ESC}");
in the trigger event when the user clicks somewhere else.

熟人话多 2024-10-22 04:08:33

我知道它已经过时了,但使用所有最新的库和 .NET 8.0 时,这种情况仍然发生在我身上。您可以在调用 MessageBox.Show 之前强制上下文菜单消失

        contextMenu.Visible = false;     // force context menu to disappear

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

        contextMenu.Visible = false;     // force context menu to disappear
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文