輸入「a」時下拉顯示以「a」開頭的單詞列表,參考金山/有道詞典體驗。
WinForms TextBox 內建 AutoCompleteMode、AutoCompleteSource、AutoCompleteCustomSource 三屬性即可零代碼實現基本功能。
List<string>、資料庫、檔案)。AutoCompleteStringCollection 並填充:var source = new AutoCompleteStringCollection();
source.AddRange(words.ToArray()); // words 為 string[]
txtInput.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
txtInput.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtInput.AutoCompleteCustomSource = source;
詞彙量大 (十萬+) 時,UI 執行緒會卡頓。採用 Task.Run 背景載入,再回 UI 執行緒賦值:
private async void Form_Load(object sender, EventArgs e)
{
var words = await Task.Run(() => LoadWordsFromDb()); // 耗時操作
var source = new AutoCompleteStringCollection();
source.AddRange(words.ToArray());
txtInput.AutoCompleteCustomSource = source;
}
使用 AutoCompleteBox (WPF Toolkit) 或第三方庫 (如 MaterialDesignThemes 的 ComboBox 啟用 IsEditable + IsTextSearchEnabled)。