需求来源

最近有个项目用到了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了:

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

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

三、结语

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

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

作者:悠扬的牧笛

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

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

【技巧】为ComboBox添加自动提示的更多相关文章

  1. winform ComboBox/TextBox自动提示

    ComboBox和TextBox控件都带有自动前缀匹配,只要设置其中的AutoCompleteMode,AutoCompleteSource,AutoCompleteCustomSource三个属性的 ...

  2. eclipse为hibernate.cfg.xml添加自动提示【转】

    在hibernate.cfg.xml头部部分如下: <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate C ...

  3. Laravel添加代码自动提示功能

    在使用Laravel框架的时候,可能会碰上代码无法自动提示的情况,那么如何添加自动提示功能呢? 1,首先在composer.json中加入以下内容: "require": { &q ...

  4. Ecplise添加XML自动提示

    这里以struts.xml为例 第一步: 首先找到 struts2的核心jar包,我这里是struts2-core-2.3.20.jar用压缩工具打开或者解压下来

  5. Eclipse用法和技巧十五:自动添加未实现方法1

    java代码中经常要实现一些接口,这个也是java代码独有的地方.实现接口,就意味着要实现这个接口中定义的方法,如果一个个去码出方法就需要记得方法名称等等,就算有内容辅助快捷键帮助,也是很麻烦的.这里 ...

  6. Eclipse用法和技巧十六:自动添加未实现方法2

    前面一篇文章里面介绍了一种常见的自动添加未实现函数的方法.这里在顺便补充几个方法.第一个方法,看上去有点怪怪的:        步骤一:Source > Clean Up: 步骤二:选择cust ...

  7. MyEclipse添加ibatis DTD文件实现xml的自动提示功能

    当我们写ibatis配置文件的时候,希望有xml自动提示功能.这就需要我们添加DTD文件 SqlMapConfig.xml中开头部分有这么一句话 <!DOCTYPE sqlMapConfig P ...

  8. java_eclipse添加DID实现自动提示

    便捷无错开发 对于xml 配置没有自动提示是多么恼火就不用说了,eclipse本身很多都是默认关闭了的,如果开发者不知道的话,就不知道怎么去设置,下面介绍几种自动提示设置的方法: XML:获得提示更好 ...

  9. MyEclipse的html/JSP编辑器添加代码自动提示

    http://lusterfly.iteye.com/blog/1872627 在myeclipse 9以前的版本中,我们如果要为html编辑器添加自动的代码提示可以这样操作: windows--&g ...

随机推荐

  1. 函数式Android编程(II):Kotlin语言的集合操作

    原文标题:Functional Android (II): Collection operations in Kotlin 原文链接:http://antonioleiva.com/collectio ...

  2. 浅析匿名函数、lambda表达式、闭包(closure)区别与作用

    浅析匿名函数.lambda表达式.闭包(closure)区别与作用 所有的主流编程语言都对函数式编程有支持,比如c++11.python和java中有lambda表达式.lua和JavaScript中 ...

  3. 如何安装Genymotion虚拟机以及Genmotion的eclipse插件

    ---内容开始--- - 首先去genymotion的官网去下载其安装文件 资源下载 Genymotion官网必须注册一个账号这个账号安装之后还有用的,用户名最好用网易126邮箱注册----我下载的是 ...

  4. ViewPager之引导页

    一.概述 ViewPager是android-support-v4中提供的类,它是一个容器类,常用于页面之间的切换. 本文介绍ViewPager最基础的应用:在多个View之间进行切换,亦即ViewP ...

  5. H5 表格标签基本使用

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. iOS 切换首页-更改tabbar的容器控制器

    最近想到的一个小需求: 首页切换:点击一个切换按钮,能实现首页的风格.排版等变换,原理是用一个新的VC替换掉. 效果如下:   ====>====> 实现方式很简单: 以我的Demo为例, ...

  7. python 发送邮件

    # coding=utf-8 import smtplibfrom time import sleepfrom email.mime.text import MIMETextfrom email.mi ...

  8. Excel公式 提取文件路径后缀

    我们在代码中获取一个文件路径的后缀,是一个很简单的事. 如C#中,可以通过new FileInfo(filePath).Extension,或者Path.GetExtension(filePath)获 ...

  9. DeprecatedAttribute vs. ObsoleteAttribute

    定义比较 ObsoleteAttribute [SerializableAttribute] [AttributeUsageAttribute(AttributeTargets.Class | Att ...

  10. Month Scheme

    新的一个月,我要给自己立FLAG了, ABCDEFG HIJKLMN 天下事有难易乎,为之,则难者亦易矣,不为,则易者亦难矣. 这次采取的策略是,每完成一项work回来补充内容.希望能把这篇blog补 ...