如何通过Tab键及时启用WinForm按钮以获得焦点

Ric*_*ler 5 c# events winforms windows-controls

Visual Studio 2010,C#

我有ComboBox一个DropDown,AutoComplete设置SuggestAppendAutoCompleteSource距离ListItems.用户将数据键入其中,直到具有正确的条目.如果数据与列表项之一匹配,则组合框旁边的按钮被禁用.

如果用户点击Tab键,则自动完成功能会接受当前建议.它还会移动到启用的选项卡序列中的下一个控件.当然,因为我希望它转到disbabled按钮,我需要在验证条目后立即启用它.

问题是,没有我试过事件,PreviewKeyDown,LostFocus,SelectedIndexChanged让我使按钮的时间它被处理连线和接收焦点.它始终以Tab键顺序进入下一个按钮,该按钮始终处于启用状态.

我准备好让按钮保持启用状态,如果太快按下它就会出错,但我不想这样做.我也不想进入特殊模式标志来跟踪这些控件何时获得焦点.验证似乎是正常的事情,但我被困住了.

如果在SelectedIndexChanged用户进行匹配时工作,这将很容易.当盒子清除时,或者当找到类型匹配时,它不会触发.

Hab*_*are 0

try this :
Run Code Online (Sandbox Code Playgroud)

按键事件:

if (e.KeyData == Keys.Enter)
        {
            button2.Enabled = true;
            button2.Focus();
        }
Run Code Online (Sandbox Code Playgroud)