博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#实现Combobox自动匹配字符
阅读量:5295 次
发布时间:2019-06-14

本文共 2139 字,大约阅读时间需要 7 分钟。

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

首先要设定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

你可能感兴趣的文章
Web前端开发工程师的具备条件
查看>>
为什么要用日志框架 Logback 基本使用
查看>>
实用Android开发工具和资源精选
查看>>
TileMap
查看>>
JS属性大全
查看>>
java复制文件
查看>>
第一册:lesson seventy nine.
查看>>
GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
查看>>
团队作业
查看>>
数据持久化时的小bug
查看>>
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>