Combox 实现百度收索框效果
标题中所谓百度收缩框效果,就是在输入数据的时候,自动提示,来张图就明白了:
用Combox来实现这个功能只是需要设置三个A开头的属性就OK了:AutoCompleteSource、AutoCompleteMode、AutoCompleteCustomSource
AutoCompleteSource属性的设置
获取或设置一个值,该值指定用于自动完成的完成字符串的源。也可以说是,指定用于自动完成的完成字符串的来源方式。其默认的属性值为None。但是在这里,我们要指定为CustomSource。
AutoCompleteMode属性
这个属性是用来获取或者设置作用于Combox控件下的方式,也就是自能提示功能的展现方式,有四个值:
| Append | 将最可能的候选字符串的其余部分追加到现有的字符,并突出显示追加的字符。类似于Excel中输入数据时提示输入 |
| Suggest | 显示与编辑控件关联的辅助下拉列表。此下拉列表填充了一个或多个建议完成字符串。百度的搜索框就是这样的效果 |
| SuggestAppand | 上面两种功能的结合 |
| none | 默认的属性 |
此处选择的属性是第三个 SuggestAppand,提示的同时选择性的输入
AutoCompleteCustomSource属性
获取或设置在AutoCompleteSource属性设置为CustomSource时使用的自定义的集合,通过这个属性可以来设置提示的下拉列表框的值。是一个数组的形式
注:下面这几句话是来自于MSDN中的原话
- 使用 AutoCompleteCustomSource、
AutoCompleteMode 和 AutoCompleteSource 属性创建一个ComboBox,它可将所输入的字符串前缀与所维护源中的所有字符串的前缀进行比较来自动完成输入字符串的填写。 这对于频繁地有 URL、地址、文件名或命令输入其中的ComboBox 控件来说很有用。 - AutoCompleteCustomSource 属性的使用是可选的,但必须将AutoCompleteSource 属性设置为
CustomSource 后才能使用AutoCompleteCustomSource。 - AutoCompleteMode 和 AutoCompleteSource 属性必须一起使用。
TextChange事件
<span style="font-size:18px;">private void cbAcupoint_TextChanged (object sender, EventArgs e)
{
string txt = cbAcupoint.Text;//cbAcupoint 是Combox控件的名称
if (!string.IsNullOrEmpty(txt))
{
List<string> res = listAcupoint.FindAll(ComparisionConditionAcupoint);//数据源的查找,listAcupoint中存放的是窗体加载时的数据
cbAcupoint.AutoCompleteCustomSource.AddRange(res.ToArray());
}
}</span>
上面的代码中,listAcupoint是窗体加载时获得的下拉列表的数据源,是一个List<string>的集合。FindAll()方法,获得满足条件的所有数据项,里面要传递一个委托函数,用来设置比较的条件,委托的原型可以通过F12来进行查看。得到所有满足条件的数据后,转换成数组赋值给AutoCompleteCustomSource即可。
<span style="font-size:18px;">//比较条件
public bool ComparisionConditionAcupoint (string s)
{
Regex reg = new Regex("^" + cbAcupoint.Text + ".");
bool b = reg.IsMatch(s);
return b;
}</span>
集合listAcupoint的FindAll()方法在进行查找的时候将listAcupoint中每一个项传递到上面这个委托函数中,用一个参数s来接收,如果满足条件,返回一个true,这个s就会成为查找的结果中的一项,如果返回false就代表当前项不合格
通过上面两段代码和属性的设置就能够实现我们想要的效果,实际项目中做的是一个穴位和病症的例子,效果如下:
Combox 实现百度收索框效果的更多相关文章
- 【亲测好用!】shell批量采集百度下拉框关键词
[亲测好用!]shell批量采集百度下拉框关键词 SEO工具 方法 11个月前 (11-18) 2153浏览 3条评论 百度已收录 一直想写一篇用shell采集百度下拉框关键词的教程,个人感觉用 ...
- jQuery动态提示消息框效果
效果预览:http://keleyi.com/keleyi/phtml/jqtexiao/2.htm 原文:http://keleyi.com/a/bjac/hxv86dyi.htm <!DOC ...
- JavaScript实战(带收放动画效果的导航菜单)
虽然有很多插件可用,但为了共同提高,我做了一系列JavaScript实战系列的实例,分享给大家,前辈们若有好的建议,请务必指出,免得误人子弟啊! ( 原创文章,转摘请注明:苏福:http://www. ...
- 分享一个jquery写的类似于百度的搜索框,(可动态配置,可单列或者table格式,可填充数据)
需求:类似于百度的搜索框,可配置,可单列可table格式,可填充数据.页面可多次使用,简单,易用. 想法:使用jquery,css,ajax,前台调用,后台返回json数据. jquery代码: va ...
- 【转】提示框第三方库之MBProgressHUD iOS toast效果 动态提示框效果
原文网址:http://www.zhimengzhe.com/IOSkaifa/37910.html MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单.方便,并且可以对显 ...
- JS组件Bootstrap实现弹出框和提示框效果代码
这篇文章主要介绍了JS组件Bootstrap实现弹出框和提示框效果代码,对弹出框和提示框感兴趣的小伙伴们可以参考一下 前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编 ...
- jQuery实现鼠标移到元素上动态提示消息框效果
当光标移动到某些元素上时,会弹出像tips的提示框,这种效果想必大家都有见到过吧,下面有个不错的示例,大家可以感受下 当光标移动到某些元素上时,会弹出像tips的提示框. 复制代码代码如下: < ...
- WPF提示框效果
WPF提示框效果 1,新建WPF应用程序 2,添加用户控件Message 3,在Message中编写如下代码 <Border x:Name="border" BorderTh ...
- Android较低版本(<5.2) 页面默认Select选择框效果的BUG解决
Bug描述: 使用低版本安卓(<5.2),在微信上打开网页,点击下拉框,会出现如下图所示的用来展示select选项的弹出框: 在选项较少的时候,可以向下滑动,将选项滑到底部 滑动前: 滑动后: ...
随机推荐
- iOS中UIKit——UIDataDetectors(数据检测器)它将电话、邮件、网址等变为链接
1.它用于UITextView和UIWebView,属性名为:dataDetetorTypes 2.此属性可以设定使符合电话.邮件.网址.符合格式的日期等文字变为链接文字. 3.电话号码点击后拨出电话 ...
- SQLServer存储过程入门
1.创建一个返回结果集的存储过程 create procedure firstpro As begin select * from dbo.Person End 执行: execute dbo.fir ...
- CSS中的content和attr的用法
问题缘起 在闲看别人网站时发现了这样的代码 <span class="hamburger icon" data-icon="C"> .icon:be ...
- 基于zmap 的应用层扫描器 zgrab (一)
基于zmap 的应用层扫描器 zgrab (一) 介绍 zgrab 是基于zmap无状态扫描的应用层扫描器,可以自定义数据包,以及ip,domain之间的关联.可用于快速指纹识别爆破等场景. 安装 g ...
- 【转】Spark 体系结构
原文地址:http://jerryshao.me/architecture/2013/03/29/spark-overview/ 援引@JerryLead的系统架构图作为Spark整体结构的一个 bi ...
- 基于OWIN WebAPI
http://www.cnblogs.com/Irving/p/4607104.html http://www.cnblogs.com/xishuai/p/aspnet-webapi-owin-oau ...
- C++经典书籍推荐
<C++程序设计语言> <C++语言设计与演化> <C++标准程序库> <EFFECTIVE C++ 中文版> <MORE EFFECTIVE C ...
- 在windows上使用symfony创建简易的CMS系统(一)
http://blog.csdn.net/kunshan_shenbin/article/details/7164675 参考自:http://xsymfony.801.cxne.net/forum. ...
- P3408: [Usaco2009 Oct]Heat Wave 热浪
水题,裸的最短路. ; type link=^node; node=record t,d:longint; f:link; end; var n,m,s,i,j,u,v,w,max:longint; ...
- eclipse格式化代码末班修改
在窗口->首选项->输入format(格式)搜索,或者找Java->代码样式->格式化程序: 几个内置的不能调格式化代码风格,但是可以根据内置的新建一个,出来很多选项,开始调吧 ...