使用 space 关闭消息框

Closing of a messagebox with space

简单的问题,但不知道如何做。

我有一个只有一个 "OK" 按钮的消息框,它通过在输入中捕获无效的 datatypes/formats 出现。

我希望在按下 Space 后按下 "OK" 按钮(并且仅按下 Space)

我想我需要某种事件,它会检查 space 按钮是否已按下(但仅按下)此消息框。但不知何故,对于这样一个简单的任务来说,这听起来有点不方便。

好吧,根据你的标签猜测。我认为您在谈论 C# 中的 Window 表单。 是的,有办法做到这一点。但不像消息框那么简单。您所要做的就是:

  • 创建 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 事件创建新的事件处理程序而不是覆盖。)

  • 因为您想将其显示为消息框,所以在显示表单时使用 ShowDialog() 而不是 Show() 方法。