c# - 如何在 Winform 中通过 Numpad 键控制按钮?

标签 c# winforms keyboard

我有这样的要求,即用户需要使用键盘数字小键盘上的键来控制分配给它的特定按钮并执行每个功能。

例子:

如果 Numpad 键 0 被按下,那么 Button0 将被触发。

或者

if(Numpad0 is pressed)
{
 //do stuff
  if (inputStatus)
        {
            txtInput.Text += btn0.Text;
        }
        else
        {
            txtInput.Text = btn0.Text;
            inputStatus = true;
        }
}
else if(Numpad1 is pressed)
{
//do stuff
}

在我的表单中,我有一个拆分容器,然后所有按钮都位于一个组合框中。

最佳答案

KeyPreview设置为true并处理KeyDown:

private void Form_KeyDown(object sender, KeyDownEventArgs e) {
    if(e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9)
        ((Button) this["Button" + (e.KeyCode - Keys.NumPad0).ToString()]).PerformClick();
}

我还没有测试过,但这就是我将如何做的。

关于c# - 如何在 Winform 中通过 Numpad 键控制按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500663/

相关文章:

c# - 如何使用 ProcessStartInfo 运行批处理文件?

c# - 当用户关闭主窗口时,PowerPoint 进程不会关闭

c# - 如何并行启动 List<Task>?

.net - 如何在 Linux 上更改 WinForms 应用程序的 WM_CLASS?

c# - 处理 ImageList

c# - Canvas 上的 ScaleTransform 调整大小以比 child 更高的速度缩小 Canvas

azure - Windows 窗体按钮脚本 block 是否有任何已知的限制?

swift - 如何让 TextView 触发 ScrollView 向上移动键盘?

html - 使 HTML5 输入类型 ="number"接受破折号

macos - 如何在 Firefox 中允许键盘焦点链接?