2016-02-12 203 views
0

我创建的组合框不是在输入第一个字母并快速按下“Tab”后自动完成存储在列表中的单词。但是,如果您输入的速度很慢,然后按“Tab”键。它是自动完成的。我发现问题出在key_down事件上。当你保持一个按键,然后按“Tab”它不会自动完成,就好像你释放了按键,然后按下“Tab”,它会自动完成。下拉组合框不自动完成。

如果我开始键入第二个字符,然后“Tab”出它自动完成。

KEY_UP事件:

private void cboReasonCd_KeyUp(Object eventSender, KeyEventArgs eventArgs) 
    { 
     int KeyCode = (int)eventArgs.KeyCode; 
     int Shift = (int)eventArgs.KeyData/0x10000; 
     CancelFillCbo.ComboReasonCD_KeyUp(KeyCode, Shift); 

    } 

这里CancelFillCbo是窗体名称和ComboReasonCD方法用于填充列表。

key_down事件:

private void cboReasonCd_KeyDown(object sender, KeyEventArgs e) 
    { 
     mlCurrentPosition = cboReasonCd.SelectionStart; 
    } 

cboReasonCd是组合框的名称。

回答

0

你试过built-in autocomplete?你不需要按Tab键。 但是,如果要编写自己的自动填充,请使用textbox和TextChanged事件来显示匹配的单词,或者使用keydown事件检测是否按下了标签以显示它们。

+0

我正在使用内置的自动完成功能。但问题是组合框不能快速填充。要填充按下标签不是必需的。但客户正在通过表单遍历它。 –