C#实现Combobox自动匹配字符
生活随笔
收集整理的這篇文章主要介紹了
C#实现Combobox自动匹配字符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不多說了,如圖,應客戶要求,下拉框中需要自動匹配字符,可能有些人一早就對此很熟,但相對于我還是首次使用,還是花了一點時間,現記錄下來,也希望能幫助大家更好的理解.
首先要設定Combobox的DropDownStyle屬性為DropDown,而不是DropDownList.然后設定匹配數據源,有兩種方法
?第一種.采用CustomSource當做提示集合,自已構造的下拉提示內容.
1 //經營單位 2 3 AutoCompleteStringCollection strings = new AutoCompleteStringCollection(); 4 DataTable dt = customformOp.CusList().Tables[0]; 5 if (dt.Rows.Count > 0) 6 { 7 //cmbTRADE_CO.DisplayMember = "CusName";//顯示字段 8 //cmbTRADE_CO.ValueMember = "Cus"; 9 //cmbTRADE_CO.DataSource = dt; 10 //cmbTRADE_CO.SelectedIndex = -1; 11 for (int i = 0; i < dt.Rows.Count; i++) 12 { 13 strings.Add(dt.Rows[i]["CusName"].ToString()); 14 } 15 } 16 17 cmbTRADE_CO.AutoCompleteCustomSource = strings; 18 cmbTRADE_CO.AutoCompleteSource = AutoCompleteSource.CustomSource; 19 cmbTRADE_CO.AutoCompleteMode = AutoCompleteMode.SuggestAppend;第二種.直接使用下拉列表中的項作為匹配的集合 (請仔細看兩代碼的區別: cmbTRADE_CO.AutoCompleteSource =??)
1 // AutoCompleteStringCollection strings = new AutoCompleteStringCollection(); 2 DataTable dt = customformOp.CusList().Tables[0]; 3 if (dt.Rows.Count > 0) 4 { 5 cmbTRADE_CO.DisplayMember = "CusName";//顯示字段 6 cmbTRADE_CO.ValueMember = "Cus"; 7 cmbTRADE_CO.DataSource = dt; 8 cmbTRADE_CO.SelectedIndex = -1; 9 //for (int i = 0; i < dt.Rows.Count; i++) 10 //{ 11 // strings.Add(dt.Rows[i]["CusName"].ToString()); 12 //} 13 } 14 15 // cmbTRADE_CO.AutoCompleteCustomSource = strings; 16 cmbTRADE_CO.AutoCompleteSource = AutoCompleteSource.ListItems; 17 cmbTRADE_CO.AutoCompleteMode = AutoCompleteMode.SuggestAppend;其AutoCompleteMode的4種情況各代表:
None:關閉自動補全功能
Suggest:展開下拉列表并顯示匹配的結果
Append:自動補全
SuggestAppend:Suggest和Append的組合,即顯示下拉列表也自動補全。
最終結果效果圖:
?
?
轉載于:https://www.cnblogs.com/Geton/p/3801562.html
總結
以上是生活随笔為你收集整理的C#实现Combobox自动匹配字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下mono的安装与卸载
- 下一篇: C#多线程写日志