C# 按键事件 - KeyDown

C# Key Events - KeyDown

我有一份 Windows 表格申请。我想要一些功能与 space 键一起使用。但是当我按下 space 键时,我想要的功能不起作用,它会转到下一个表格。 (我做了KeyPreview = true)

private void Form7_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Space)
        {
            IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
            GazeDataStop(eyeTracker);
        }
    }

因为:

1- 如果你有按钮,... keydown 将不起作用,因为表单将不再具有焦点 2-你必须处理 keydown,这样它就不会传递给其他控件

1 的解决方案: 将表单的 KeyPreview 属性 设置为 true

2 的解决方案:

设置e.Handled = true:

private void Form7_KeyDown(object sender, KeyEventArgs e)
    {
        e.Handled = true;
        if (e.KeyCode == Keys.Space)
        {
            IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
            GazeDataStop(eyeTracker);
        }
    }