Windows窗体中是否有办法使用Q键激活当前关注的按钮/控件?或者覆盖Enter,以便按Q激活当前聚焦的控件,如Enter?我希望用户只需用Tab和Q上的左手来控制应用程序就可以循环控制并激活它们。
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Q)
{
e.Handled = true;
}
我已经有了这个,但在e.Handled激活当前焦点后我需要什么?
答案 0 :(得分:2)
作为选项,您可以覆盖ProcessCmdKey
并检查密钥是否为 Q ,然后使用SendKeys.Send
发送 Enter 并返回true
}表示您处理了密钥:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Q)
{
SendKeys.Send("{Enter}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
如果需要,可以通过选中this.ActiveControl is Button
来限制按钮的行为。