首页 > 技术文章 > 【技巧】为ComboBox添加自动提示

xhb-bky-blog 2014-12-29 17:06 原文

需求来源

最近有个项目用到了ComboBox控件,在演示的时候,要对Word文档中选中部分添加符合DocBook标准的标签,这些标签是DocBook中元素的集合,数据量不多,大概170多个吧,但是在演示的时候我发现每次添加标签的时候都要点击ComboBox并找到指定的标签,这样在170多个标签里上下寻找也是很耗时的操作,于是我就把ComboBox的自动提示以及自动补全功能加了进去。

简单的效果图:

    

 

 

 
 
 
 
 
 
 
 

实现方法

这种自动提示自动补全的功能得益于ComboBox自身所拥有的属性AutoCompleteMode,表示控件中内容自动完成的模式,有四个值可以选

None: 不启用自动提示和补全功能;
Append:将有可能出现的字符追加到现有字符,并突出显示;
Suggest:显示下拉列表, 列表中填充建议完成的字符串;
SuggestAppend: Append与Suggest的结合,

本实例中用的是最后一种模式,也就是下面的代码,其他方式大家可以自行尝试一下:

this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;

 当然,要显示列表,必须要有数据项,AutoCompleteMode的数据源是AutoCompleteSource枚举类型,最常用的就是最后一个ListItems了:

 然后在加载的时候,指定数据源:
1 private void Form1_Load(object sender, EventArgs e)
2 {
3    //制定搜索范围,一般是Combobox数据源
4    this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
5  }
 1 this.comboBox1.Items.AddRange(new object[] {
 2  "article",
 3  "title",
 4  "tag",
 5  "author",
 6  "sub",
 7  "sup",
 8  "lang",
 9  "address",
10  "subject",
11  "group"});

这里为了演示效果,数据项是我手工加上去的,当然数据源可以是数据库中读取的内容,这个可以自己试一下。

三、结语

这就是一个不起眼的小技巧,但是当我们真正用到的时候,也未必就能信手拈来,所以,经验在于积累,无他,唯手熟尔。

还有2天,2014就要过去了,不管这一年过得好与坏,感激自己挺了过来,加油吧,兄弟!

 作者:悠扬的牧笛

 博客地址:http://www.cnblogs.com/xhb-bky-blog/p/4191965.html                       

 声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

 

推荐阅读