Windows 表单 - 用另一个键替代 Enter
Windows Form - Override Enter with an other key
有没有办法在Windows表单中用Q键激活当前聚焦的button/control?或者覆盖 Enter,以便按 Q 激活当前聚焦的控件,就像 Enter 一样?我希望用户能够只用左手按 Tab 和 Q 来控制应用程序来循环控制并激活它们。
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Q)
{
e.Handled = true;
}
我已经有了这个,但是e.Handled激活当前焦点后我需要什么?
作为一个选项,您可以覆盖 ProcessCmdKey
and check if the key is Q then send Enter using SendKeys.Send
和 return 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
将行为限制为按钮。
有没有办法在Windows表单中用Q键激活当前聚焦的button/control?或者覆盖 Enter,以便按 Q 激活当前聚焦的控件,就像 Enter 一样?我希望用户能够只用左手按 Tab 和 Q 来控制应用程序来循环控制并激活它们。
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Q)
{
e.Handled = true;
}
我已经有了这个,但是e.Handled激活当前焦点后我需要什么?
作为一个选项,您可以覆盖 ProcessCmdKey
and check if the key is Q then send Enter using SendKeys.Send
和 return 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
将行为限制为按钮。