2016-02-12 124 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

我正在使用內置的自動完成功能。但問題是組合框不能快速填充。要填充按下標籤不是必需的。但客戶正在通過表單遍歷它。 –