[C#.NET][VB.NET] 如何設定 TextBox / ComboBox 自動完成輸入
1.AutoCompleteSource的選項包括 AllSystemSources、AllUrl、FileSystem、HistoryList、RecentlyUsedList、CustomSource 和 None。預設值為 None。
2.AutoCompleteSource選項內容設定表示為:
FileSystem 表示本機來源檔案、磁碟及目錄
HistoryList 表示歷史URL
RecentlyUsedList 表示最近常用的URL
AllUrl 表示HistoryList+RecentlyUsedList
AllSystemSource 表示FileSystem+AllUrl
AllSystemDirectories 表示磁碟與目錄(不包含檔案)
ListItems 表示ComboBox在用的自動完成輸入的來源
CustomSource表示自訂
None 表示不啟用
3.必須同時使用 AutoCompleteMode 和 AutoCompleteSource 屬性。
4.AutoCompleteMode選擇表示
Sugget 顯示一個下拉式列表供你選擇(如果內容快打完了,清單沒有出來,按BackSpace鍵試試)
Append 輸入字串後,按方向鍵可以選擇,並將剩餘的字串加入。
SuggetAppend 顧名思義是Sugget+Append 兼具上述兩者功能。(這看起來就比較好用,當然選它)
4.AutoCompleteSource 不會在多行 TextBox 控制項上運作
5.使用 AutoCompleteCustomSource 屬性是選擇性的,但是您必須將 AutoCompleteSource 屬性設定為 CustomSource,才能使用 AutoCompleteCustomSource。如果你有自訂的選單定義,當然就是選它了。
6.AutoCompleteStringCollection 類別,包含字串集合,用於某些 Windows Form 控制項上的自動完成功能。在程式碼中我們可以利用Add及AddRange方法來建立Source,用法很簡單如下所示。
{
AutoCompleteStringCollection acc = new AutoCompleteStringCollection();
acc.Add("台北市大同區忠孝東路1段1號");
acc.Add("台北市大同區忠孝東路1段2號");
acc.Add("台北市信義區忠孝東路1段3號");
acc.Add("台北市信義區忠孝東路1段4號");
acc.Add("台北市大同區忠孝東路2段1號");
acc.Add("台北市大同區忠孝東路2段2號");
acc.Add("台北市大同區忠孝東路2段3號");
acc.Add("台北市大同區忠孝東路2段4號");
acc.AddRange(new string[] {
"台灣:高雄市大同區忠孝東路1段1號",
"台灣-彰化市大同區忠孝東路1段2號",
"台灣,苗栗市信義區忠孝東路1段3號",
"台灣.台北市信義區忠孝東路1段4號",
"台灣 台北市大同區忠孝東路2段1號",
"台灣+台中市大同區忠孝東路2段2號",
"台灣=台南市大同區忠孝東路2段2號",
"台灣/台東市大同區忠孝東路2段2號"
});
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox1.AutoCompleteCustomSource = acc;
}
這是一個蠻好玩的功能,可惜ASP.NET以上內容都不適用,ASP.NET應該是使用AutoCompleteType 屬性吧?
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET