C#实现Combobox自动匹配字符

不多说了,如图,应客户要求,下拉框中需要自动匹配字符,可能有些人一早就对此很熟,但相对于我还是首次使用,还是花了一点时间,现记录下来,也希望能帮助大家更好的理解.

C#实现Combobox自动匹配字符_第1张图片

首先要设定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的组合,即显示下拉列表也自动补全。

最终结果效果图:

C#实现Combobox自动匹配字符_第2张图片

 

 

你可能感兴趣的:(combobox)