我创建的组合框在输入第一个字母后快速按下" 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 :(得分:0)
你试过built-in autocomplete吗?你不需要按Tab键。 但是,如果要编写自己的自动完成,请使用textbox和TextChanged事件来显示匹配的单词,或使用keydown事件检测是否已按下tab以显示它们。