2010-02-18 81 views
3

我想要一個支持自動完成的TextBox,並允許用戶輸入用逗號或分號分隔的多個單詞,爲每個單詞提供建議。我有一個標準TextBox逗號或分號分隔的自動完成文本框

textBox.AutoCompleteCustomSource.AddRange(new[] { "apple", "banana", "carrot" }); 
textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
textBox.AutoCompleteSource = AutoCompleteSource.CustomSource; 

不幸的是,它只會建議爲第一個單詞。之後輸入的任何內容都會停止提示。

我希望能夠執行以下情形:

  1. 類型「AP」
  2. 有它暗示「蘋果」
  3. 按下逗號
  4. 有它填補了「蘋果, 「用逗號後光標
  5. 類型‘把’
  6. 有它建議‘香蕉’
  7. 按下逗號
  8. 有其附加的「香蕉」,導致「蘋果,香蕉,」

我試過谷歌搜索的解決方案,但還沒有多少運氣。這似乎是網絡應用的流行功能,但顯然不適用於winforms。有什麼建議麼?

回答

0

您可以通過監聽KeyDown事件來實現自己的自動完成功能。

2

我不相信只需構建自動完成文本框屬性即可完成此任務。我要做的是製作一些自定義功能,檢查文本框的OnTextChanged方法並決定要做什麼。當然,與你正在嘗試做的事情相比,這將會更加複雜。您必須決定是否鍵入一些已知字符串,並以某種可選方式提供建議,如果單擊它,則追加選定的更改,當鍵入分隔符時追加並附加當前選定的建議,並準備好自己他們添加更多文本並再次啓動該過程。

我希望別人有一個更簡單的方法,但如果不是,希望這給你一個所需邏輯的想法。祝你好運!