2011-06-22 65 views
0

在WinForms應用程序中,我有一個組合框,我嘗試使用基於用戶輸入的值來填充組合框。例如,如果用戶鍵入m,它應該向他顯示以字母m開頭的所有值,但我不想在開始時添加所有值,因爲有很多值。動態添加值時ComboBox自動完成問題

要做到這一點,我創建了一個事件textchanged當例如用戶輸入的字母m我的計劃去我的數據庫,並添加所有的值以字母m到ComboBox。
我認爲組合框第一次看到它是否應該自動完成(建議)值並且只有在它添加了值後纔會出現問題。

如何讓它先添加值或再次進行組合框檢查,如果它應該提示值?

這裏是我的代碼:

private void comboBox1_TextChanged(object sender, EventArgs e) 
{ 
    comboBox1.Items.Clear(); 
    for (int i = 0; i < MilkProducts.Length; i++) 
    { 
     if (MilkProducts[i].StartsWith(comboBox1.Text)) 
     { 
      comboBox1.Items.Add(MilkProducts[i]); 
     } 
    } 
} 
+0

不知道究竟出了什麼問題..你可以請更好地解釋發生的事情與你想怎樣呢? –

+1

你試圖在組合框按鍵事件上做到這一點? – Ankur

+0

我希望當用戶寫入文本到組合框時,選項數組將被添加到組合框中,每當他添加一個字母或改變它需要刪除所有以前的項目並添加新的項目時,它會這樣做,問題是組合框首先檢查它是否需要顯示任何內容,並且因爲沒有項目(我的事件只在系統事件之後運行),它不顯示任何內容。 –

回答

1

我認爲問題是你是在清除組合框的所有項目在comboBox1.Items.Clear(),然後在comboBox1.Text訪問它的內容可能是你應該嘗試不同的這樣做。或者最後清除它。

+0

不,我需要在開始時清楚,清楚到底怎麼會有幫助?我需要清除所有以前的項目並添加新的項目... –