C#Ctrl + F有时不起作用

时间:2017-12-13 12:45:43

标签: c# winforms keyup keystroke

我有一个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'之前,事件就被解雇了。当我同时按下两个键时,它最终会起作用。因此,对于用户而言,有时屏幕可能看起来没有响应。

我怎样才能克服这种情况?

1 个答案:

答案 0 :(得分:3)

您正在使用KeyUp事件并检查事件是否包含两个键。这只会在您同时释放两个键时发生。

改为将其更改为KeyDown事件,并且在按下 F check whether Ctrl was pressed

thread_1 = threading.Thread(name="wait_for_esc", target=wait_for_esc)
thread_2 = threading.Thread(name="do_something", target=do_something)