C#当消息框出现时,托盘上下文菜单未隐藏

C#当消息框出现时,托盘上下文菜单未隐藏,c#,winforms,contextmenu,trayicon,C#,Winforms,Contextmenu,Trayicon,在我的应用程序中,我有与应用程序托盘图标关联的上下文菜单,当用户单击“关于”菜单项时,它会显示消息框。消息框仍然可见,用户再次右键单击任务栏图标,弹出菜单,用户单击上下文菜单以外的其他位置应消失,但它没有消失,它仍然显示。您可以使用SendKeys.Send(“{ESC}”); 在触发事件中,当用户单击其他位置时。这是一个错误。可能在Windows中,TrackPopupMenu的MSDN库文档记录了一个非常类似的问题。除了避免使用MessageBox之外,我看不到明显的解决方法。创建一个小表单

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

您可以使用SendKeys.Send(“{ESC}”);
在触发事件中,当用户单击其他位置时。

这是一个错误。可能在Windows中,TrackPopupMenu的MSDN库文档记录了一个非常类似的问题。除了避免使用MessageBox之外,我看不到明显的解决方法。创建一个小表单作为您的“关于”框。使用Show()方法显示它。

上下文菜单没有焦点丢失事件,所以我在鼠标离开事件中添加了它。如果我使用发送键功能,它也会关闭消息框。所以用户无法看到消息框。是的,这是一个非常糟糕的解决方案,原因有很多。你已经看过其中两个了。