[C#.NET][VB.NET] 如何設定 TextBox / ComboBox 自動完成輸入

  • 53002
  • 0
  • C#
  • 2009-11-03

[C#.NET][VB.NET] 如何設定 TextBox / ComboBox 自動完成輸入

1.AutoCompleteSource的選項包括 AllSystemSources、AllUrl、FileSystem、HistoryList、RecentlyUsedList、CustomSource 和 None。預設值為 None。

2009-10-29 下午 09-16-26-1  2009-11-2 下午 01-02-58-2

2.AutoCompleteSource選項內容設定表示為:

FileSystem 表示本機來源檔案、磁碟及目錄

HistoryList 表示歷史URL

RecentlyUsedList 表示最近常用的URL

AllUrl 表示HistoryList+RecentlyUsedList

AllSystemSource 表示FileSystem+AllUrl

AllSystemDirectories 表示磁碟與目錄(不包含檔案)

ListItems 表示ComboBox在用的自動完成輸入的來源

CustomSource表示自訂

None 表示不啟用

3.必須同時使用 AutoCompleteModeAutoCompleteSource 屬性。

2009-11-2 下午 01-18-04-3

4.AutoCompleteMode選擇表示

Sugget 顯示一個下拉式列表供你選擇(如果內容快打完了,清單沒有出來,按BackSpace鍵試試)

2009-11-2 下午 01-27-08-4

Append 輸入字串後,按方向鍵可以選擇,並將剩餘的字串加入。

2009-11-2 下午 01-29-55-5

SuggetAppend 顧名思義是Sugget+Append 兼具上述兩者功能。(這看起來就比較好用,當然選它)

4.AutoCompleteSource 不會在多行 TextBox 控制項上運作

5.使用 AutoCompleteCustomSource 屬性是選擇性的,但是您必須將 AutoCompleteSource 屬性設定為 CustomSource,才能使用 AutoCompleteCustomSource。如果你有自訂的選單定義,當然就是選它了。

6.AutoCompleteStringCollection 類別,包含字串集合,用於某些 Windows Form 控制項上的自動完成功能。在程式碼中我們可以利用AddAddRange方法來建立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

Image result for microsoft+mvp+logo