禁用在表单中通过箭头键选择控件

Fra*_*zzi 2 c# winforms

在 Windows 窗体上按箭头键时如何禁用控件选择?例如,当我在组合框聚焦时向上和向下按时,它会选择一些元素,或者如果有一个工具栏聚焦,它会选择不同的按钮。

有没有办法禁用这种行为?

Don*_*ott 5

您可以拦截箭头按键并且根本不做出反应:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (!msg.HWnd.Equals(this.Handle) && 
        (keyData == Keys.Left || keyData == Keys.Right ||
        keyData == Keys.Up || keyData == Keys.Down))
        return true;
    return base.ProcessCmdKey(ref msg, keyData);
}
Run Code Online (Sandbox Code Playgroud)

您可能希望首先将焦点放在无害的地方,否则,您可能会强制其“锁定”到您不希望活动的控件。