在c#中只显示messagebox.show的一个实例

时间:2009-07-30 02:57:57

标签: c# .net winforms

我为我的应用程序创建了一个自定义键盘快捷键, 当用户按下CTRL + ALT + Q的组合键时,我显示 消息框“你确定要退出吗?”然后点击 是的,我退出了申请。

问题: 我想确保只显示一次消息框实例。 无论用户按下快捷方式多少次。

目前它显示多个消息框,按下多个 快捷方式。

如何克服这个问题?

5 个答案:

答案 0 :(得分:2)

来自MSDN

  

消息框是一个模态对话框,   这意味着没有输入(键盘或   鼠标点击)可以发生除了   模态形式上的对象。该程序   必须隐藏或关闭模态表格   (通常是对某些用户的回应   在输入到另一个表单之前   可能会发生。

在connect.microsoft.com上提交错误!


考虑ck的注释...如果要显示自定义对话框(表单),则需要使用Form.ShowDialog()而不是Show()来调用表单。

答案 1 :(得分:1)

快速而肮脏的方法是拥有一个类级别的布尔变量,用于跟踪用户何时尝试退出。如果是,则设置为true,显示对话框的例程可以检查此标志,然后返回而不做任何事情。

答案 2 :(得分:0)

似乎Singleton Pattern是您的选择。

答案 3 :(得分:0)

我认为您可以创建自己的表单并使用mymessageboxform.show()方法,并检查其对话结果。

答案 4 :(得分:-1)

您需要创建应用程序单个实例,以便只能启动一次。

Single Instance App