我正在C#中使用一個文本框,它充當數據庫(Access SQL)通過ID號進行記錄查找的輸入。我希望能夠在文本框中使用自動完成功能,但有一些限制。C#文本框自動完成:限制爲〜50條建議
最大的問題是系統中ID的數量是幾千的數量級,所以我不需要在它們全部填充一次自動完成框,我需要監視文本框中的內容並僅顯示自動填充建議當有〜50或更少的選擇時。
目前,我做每個的KeyDown這個查詢:從表SELECT COUNT(*)WHERE ID LIKE「textbox.text%」
當計數小於50我填的是自動完成從結果上述語句的SELECT id版本。這導致了我幾個問題,大多數似乎是我不明白的C#怪癖。
1)當我在單個KeyDown事件中清除或添加到AutoCompleteCustomSet時,按下的實際按鍵不會被添加到字符串中(即不會出現正常的文本框輸入行爲)。
2)我嘗試將AutoCompleteCustomeSet更新分離到不同的事件(KeyPress或KeyUp),但是這會導致崩潰,或者自動完成顯示只會在隱藏之前短暫顯示。
我覺得這個問題一定是常見的,我只是以錯誤的方式去做。任何人都可以提供建議嗎?謝謝!
編輯:這是Windows窗體
EDIT2:一個頂部50選擇不固定,隨着用戶的類型(和潛在的退格和重新類型)的頂部50將改變的問題。
這是WinForms? WPF? ASP.NET? – LBushkin 2010-02-01 19:49:06