1

基本上在我正在处理的 C# Windows 窗体应用程序中,我按下了 2 个按钮button1button2.

2 custom keys当我同时按下(例如 CTRL+ L)程序执行编码的步骤时,我如何做到这一点button1?请记住,该窗口可能未处于活动状态。

我看过这个:Keypress To Simulate A Button Click in C#但我认为如果窗口不活动,这将不起作用,而且它也只按下一个按钮而不是两个。

4

2 回答 2

1

Form KeyUp Event和Properties 中是KeyPressPreview = true可以完成这个任务的。

   private void Form_KeyUp(object sender, KeyEventArgs e)
   {
       if (e.KeyCode == Keys.L && e.Control)
       {
                yourButton.PerformClick();
                e.Handled = true;
        }
    }

或者

如果你想进去Keypress Event

private void Form_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.L)
    {
            yourButton.PerformClick();
            e.Handled = true;
    }
}

编辑:

我意识到 OP 想要keypress Event从他的声明中“但如果窗口不活动,我认为这不会起作用”

你可能必须检查这个

如何在 Visual C# .NET 中设置 Windows 挂钩

于 2013-01-29T09:46:01.323 回答
0

如果在按钮文本中的任何字符前面加上 &,并保持 UseMnemonic 为 true,。alt+字符将用作快捷键。

例如,在您的情况下,将按钮的文本分别更改为button&1button&2。保持UserMnemonic = true。现在,如果您按alt+1则 button1 将被按下,如果您按alt+2则 button2 将被按下。

1 和 2 也将分别加下划线。

希望有帮助。

于 2013-01-29T10:01:41.000 回答