通过自定义KeyPress激活按钮进程

时间:2013-01-29 09:37:03

标签: c# button

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

当我同时按2 custom keys例如 CTRL + L )时,如何制作该程序执行步骤编码为button1?请记住,窗口可能没有激活。

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

2 个答案:

答案 0 :(得分:1)

Form KeyUp Event中,属性为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但我不认为如果窗口不活动,这将会起作用“

你可能必须检查这个

How to set a Windows hook in Visual C# .NET

答案 1 :(得分:0)

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

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

同样分别为1和2的下划线。

希望有所帮助。