winform中complete textbox,下拉自动完成控件
2009-12-22 16:48
309 查看
vs2005中textBox有AutoComplete的功能,但是在实际用到时发现效果并不太好。好像自动完成的数据源需要在窗体加载时就设置好,并不能根据textBox中实际输入的文本动态的查询数据库更改source中的信息。这是我自己的理解,或许有些地方我自己没有弄清楚吧。
最近遇到一个项目,用户在文本框中输入拼音时文本框自动下拉列出所有符合的记录,然后选择需要录入的信息。这个类似于火车站窗口卖票时,售票员只需要输入bj两个字母,下拉列出所有站名的声母是bj的站点。vs2005中提供的功能我没有实现这个功能,因此就自己写了这样的一个控件。
当然这个控件本身并不是只能用于输入拼音显示人名。下拉框的内容是可以动态指定的。
提供了几个自定义属性如下:
1.DropFont 就是下拉框的字体属性
2.DropHeight 就是下拉框最大高度
3.DropHeightFix 下拉框的高度是否根据里面的选项进行自动调整。如果为true那么下拉框选项很少的时候,下拉框的高度会自动的
收缩,如果下拉框选项很多,高度会增加,但是不会超过属性2指定的高度。建议使用true属性。因为在测试过程中
当下拉框下面有Grid控件的时候,显示效果不太理想。
4.DropItems 指定下拉框填充的内容,一般在程序中动态填充
5.HScrollbar 下拉框中的内容超过下拉框宽度时,是否显示水平滚动条
6.MaxItems 下拉框中最多填充的项数
7.Me 自己的个人信息,呵呵,只读的。有问题大家可以交流下。
8.Minletters 文本框中最少输入的字符,当输入字符数大于等于这个数字的时候下拉框开始感知
9.Text 文本框内容
10.TxtColor 文本框和下拉框字体颜色。
提供了一个自定义事件
这个是默认的事件。当文本框内容更改时会触发该事件。
private void dropTextBox2_TxtChanged(object sender, DropTextBox.TxtEvenargs e) { string txt = e.txt.Trim(); //参数e中包含了textBox当前的文本内容 if (e.txt.Length < dropTextBox2.Minletters) //如果文本内容小于Minletters不查询数据库 { return; } int count = dropTextBox2.MaxItems; string sql = " select top "+count.ToString ()+" * from users where py like '" + txt + "%' "; //查询语句 /*.... ..... 具体查询过程就省略了,总之根据需要去查询数据库,然后返回DataTable,根据返回的DataTable中的数据构建字符串数组 将这个数组赋值给DropItems属性就可以了 ...... */ DataTable table = ...... //用DataTable中的数据构建字符串数组 ArrayList al = new ArrayList(); for (int i = 0; i < table.Rows.Count; i++) { if (!al.Contains(table.Rows[i]["uname"].ToString())) { al.Add(table.Rows[i]["uname"].ToString()); } } string[] s = (string[])al.ToArray(typeof(string)); dropTextBox2.DropItems = s;//赋值给DropItems }
控件下载链接:http://download.csdn.net/source/1926226
http://download.csdn.net/source/2471392 (含使用demo)
相关文章推荐
- WinForm中TextBox控件循环自动滚动示例
- AutoCompleteType防止textbox“自动完成”
- Android -- 对话框 Dialog: 确定取消,单选多选,进度显示, 常用控件示例:单选多选框,下拉列表,进度条,自动完成文本框, 菜单显示
- WinForm 自动完成控件实例代码简析
- Autocomplete Textbox Example javascript实现自动完成成功
- WinForm 自动完成控件
- TextBox自动匹配,自动完成,AutoCompleteCustomSource
- AutoCompleteTextView自动完成输入内容的控件
- AutoCompleteTextView,MultiAutoCompleteTextView自动完成输入内容的控件
- Silverlight AutoCompleteBox(自动完成输入框控件)使用方法
- Silverlight AutoCompleteBox(自动完成输入框控件)使用方法
- 重写winform 的 ComboBox控件实现自动加载磁盘下拉列表框
- TextBox自动完成控件
- Android基础核心总结之二-----Spinner、AutoCompleteTextView(自动完成控件)
- WinForm 自动完成控件实例代码简析
- Silverlight学习笔记三之自动完成框(AutoCompleteBox控件)
- textbox显示下拉框中,实现自动完成
- MultiAutoCompleteTextView和AutoCompleteTextView两个自动完成功能控件的使用
- TextBox自动匹配,自动完成,AutoCompleteCustomSource
- 弹出下拉编辑控件,跟踪输入内容自动过滤查询,过滤条件完全自定义,支持TextBox,支持DataGridView(弹出查询对话框),支持DevExpress 8.2的TextEdit,Gridview