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);
}
}
我有一份 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);
}
}