我为我的应用程序创建了一个自定义键盘快捷键, 当用户按下CTRL + ALT + Q的组合键时,我显示 消息框“你确定要退出吗?”然后点击 是的,我退出了申请。
问题: 我想确保只显示一次消息框实例。 无论用户按下快捷方式多少次。
目前它显示多个消息框,按下多个 快捷方式。
如何克服这个问题?
答案 0 :(得分:2)
来自MSDN
消息框是一个模态对话框, 这意味着没有输入(键盘或 鼠标点击)可以发生除了 模态形式上的对象。该程序 必须隐藏或关闭模态表格 (通常是对某些用户的回应 在输入到另一个表单之前 可能会发生。
在connect.microsoft.com上提交错误!
考虑ck的注释...如果要显示自定义对话框(表单),则需要使用Form.ShowDialog()而不是Show()来调用表单。
答案 1 :(得分:1)
快速而肮脏的方法是拥有一个类级别的布尔变量,用于跟踪用户何时尝试退出。如果是,则设置为true,显示对话框的例程可以检查此标志,然后返回而不做任何事情。
答案 2 :(得分:0)
似乎Singleton Pattern是您的选择。
答案 3 :(得分:0)
我认为您可以创建自己的表单并使用mymessageboxform.show()方法,并检查其对话结果。
答案 4 :(得分:-1)
您需要创建应用程序单个实例,以便只能启动一次。