C# Ctrl+F 有时不起作用
C# Ctrl+F doesn't work sometimes
我有一个 winforms 应用程序,其中我在表单中有一个 textbox
。每当我按 'Ctrl+F' 时,我都需要将焦点设置到 textbox
。我在 keyup
事件中有以下代码。
private void frm_KeyUp(object sender, KeyEventArgs e)
{
// Handle 'Ctrl + F' to Find
if (e.KeyData == (Keys.Control | Keys.F))
SetFocus();
}
我在这里遇到的问题是,有时,即使重点放在形式上并且我尝试 'Ctrl+F' 条件也不会 运行。我知道,只要我按下 'Ctrl',事件就会在我按下 'F' 键之前触发。最终它起作用了,当我同时按下两个键时。所以对于用户来说,有时屏幕似乎对按键没有反应。
我该如何克服这种情况?
您正在使用 KeyUp 事件并检查该事件是否包含两个键。只有当您同时释放两个键时才会发生这种情况。
将其更改为 KeyDown 事件,check whether Ctrl was pressed 在按下 F 的时刻:
if (e.Control && e.KeyCode == Keys.F)
{
// ...
}
我有一个 winforms 应用程序,其中我在表单中有一个 textbox
。每当我按 'Ctrl+F' 时,我都需要将焦点设置到 textbox
。我在 keyup
事件中有以下代码。
private void frm_KeyUp(object sender, KeyEventArgs e)
{
// Handle 'Ctrl + F' to Find
if (e.KeyData == (Keys.Control | Keys.F))
SetFocus();
}
我在这里遇到的问题是,有时,即使重点放在形式上并且我尝试 'Ctrl+F' 条件也不会 运行。我知道,只要我按下 'Ctrl',事件就会在我按下 'F' 键之前触发。最终它起作用了,当我同时按下两个键时。所以对于用户来说,有时屏幕似乎对按键没有反应。
我该如何克服这种情况?
您正在使用 KeyUp 事件并检查该事件是否包含两个键。只有当您同时释放两个键时才会发生这种情况。
将其更改为 KeyDown 事件,check whether Ctrl was pressed 在按下 F 的时刻:
if (e.Control && e.KeyCode == Keys.F)
{
// ...
}