2017-03-31 59 views
-4

简单的问题,但无法弄清楚如何做到这一点。关闭与空间的消息框

我有一个消息框只有一个“确定”按钮,它通过捕获输入上的无效数据类型/格式显示。

我想在按下空格(也是唯一一次宇宙)

后,我想我需要某种事件,检查“确定”按钮将被推如果空格键被按下(但只能)在此消息框。但不知何故,对于这样一个简单的任务来说,这听起来有点不方便。

+0

有一个按键事件。 http://stackoverflow.com/questions/19076051/how-to-use-keypressevent-in-correct-way – Vijay

+1

这是内置的Windows窗体消息框? – stuartd

+2

简单的答案是你不能。不是没有使用'Form'创建自己的'MessageBox',然后处理'KeyPress'事件。 – ThePerplexedOne

回答

0

那么,从你的标签猜测。我想你是在谈论窗口窗体在C#中。 是的,有一种方法可以做到这一点。但不像消息框那么简单。所有你需要做的是:

  • 创建Form和设计它像一个MessageBox
  • 覆盖的PreviewKeydown事件处理程序(或重写KeyPress事件处理程序也将工作)
  • 然后当Space匹配的情况下键被按下。

示例代码是下面给你一个想法:

switch (e.KeyCode) 
{ 
    case Keys.Space: 
     //Call The Event handler for Ok Button 
     e.Handled = true; 
     e.Suppressed = true; 
     break; 
} 

(注意:您也可以为PreviewKeyDown事件创建新的事件处理程序,而不是压倒一切的)

  • 正如你想要在显示窗体而不是Show()方法时使用ShowDialog()作为消息框显示它。