【问题标题】:Closing of a messagebox with space用空格关闭消息框
【发布时间】:2017-04-03 02:52:13
【问题描述】:

简单的问题,但不知道该怎么做。

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

我希望在按空格(并且只有空格)后按下“确定”按钮

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

【问题讨论】:

  • 有一个按键事件。 stackoverflow.com/questions/19076051/…
  • 这是内置的 Windows 窗体 MessageBox 吗?
  • 简单的答案是你不能。并非没有使用Form 创建自己的MessageBox,然后处理KeyPress 事件。
  • Space 会点击窗口中的按钮,只要它获得焦点。
  • Space 会点击一个按钮,但你必须禁用 Enter 按钮点击

标签: c# .net messagebox keydown


【解决方案1】:

嗯,从你的标签猜测。我认为您在谈论 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 Event 创建新的事件处理程序,而不是覆盖。)

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

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2012-09-07
    相关资源
    最近更新 更多