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)
{
    // ...
}