2016-02-12 4 views
0

Ящик, который я создал, не выполняет автоматическое заполнение слов, сохраненных в списке, после ввода первой буквы и быстрого нажатия «Tab». Однако, если вы вводите текст медленно, а затем нажмите «Tab». Это автоматическое завершение. Я понял, что проблема связана с событием key_down. Когда вы держите нажатой клавишу, нажмите «Tab», она не будет завершена автоматически, где, как если бы вы отпустили ключ, а затем нажмите «Tab», он автоматически завершится.Выпадающий Combo Box не автозаполнение.

Если я начинаю вводить второй символ, а затем «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? Вам не нужно нажимать вкладку. Однако, если вы хотите написать свой собственный автозаполнение, используйте текстовое поле и событие TextChanged, чтобы отобразить соответствующие слова, или обнаружение события keydown, если табуляция была нажата, чтобы показать их.

+0

Я использую встроенный авто-комплект. Но проблема в том, что поле со списком не заполняется быстро. Для заполнения нажатой вкладки не требуется. Но клиент делает это для прохождения через форму. –