WinForm中TextBox控件下拉列表问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinForm中TextBox控件下拉列表问题相关的知识,希望对你有一定的参考价值。

控件说明:TextBox中有个AutoCompleteCustomSource属性,把一些值填中这中后在该TextBox输出相近的值就会出现一些预选的下拉列表供你选择。
需要实现:在TextBox输出相应的值后,根据值而触发事件。如:输入AABB后就会出发一个事件。在TextBox输出AA时,就会出现下拉列表,AAAA、AABB、AACC等,当我移动键盘光标想要选中AABB时,它会首先选中AAAA(TextBox)框自动会变为AAAA,同时会触发了事件,从而达不到光标选中AABB,并且触发事件效果。
求助大神:在TextBox输入AABB可触发事件,输入AA后键盘向下光标走到AABB后按回车,可触发事件,这个功能怎么实现。
其它疑问:有没有方法获取TextBox下拉列表是否存在,当它存在时需要按回车才能触发事件,不存在时就直接输入匹配后触发。或有大神能有更好的方法帮我实现这个功能。
求大神级出合理的解决方案。

参考技术A 不知道怎么触发事件,不过可以提供一个其他方法
一他timer或者一个线程,循环读取textbox的值,如果出现期望值则do something
参考技术B TextBox中有个AutoCompleteCustomSource

Winform中TextBox控件开启自动提示补全功能

  问题:Winform开发中,有一个TextBox控件用以输入姓名,现希望在输入名字时能够自动提示所有可能的名字。

技术分享图片

 

  解答:winform中的TextBox控件含有如下三个属性:

??① AutoCompleteMode:自动提示与补全的方式,具体方式参见AutoCompleteMode枚举;

??② AutoCompleteSource:自动提示与补全所使用的字符串源,具体设置参见AutoCompleteSource,当值设置为CustomSource时需要设置第③个属性;

??③ AutoCompleteCustomSource:自定义的自动提示与补全所使用的字符串源。

??只要适当地设置上面3个属性即可解决问题。

this.textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
this.textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
string[] names = new string[] { "张三丰", "独孤求败", "风清扬", "扫地僧" };
this.textBox1.AutoCompleteCustomSource.AddRange(names);

  技术分享图片

  上述操作对于ComboBox控件同样适用。

??思考:如果ComboBox使用其Items属性(即下拉列表)作为字符串源,该如何设置?

??考:

string[] names = new string[] { "张三丰", "独孤求败", "风清扬", "扫地僧" };
this.comboBox1.Items.AddRange(names);
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;

  技术分享图片

  文章同步更新:http://www.motyer.cn/Files/BlogDetails/winform-textbox-autocomplete.html

 

以上是关于WinForm中TextBox控件下拉列表问题的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 下拉列表控件(comboBox)

C# Winform的comboBox控件下拉框怎样做一个多选?请大神指教!麻烦您给出相应代码!

C# 模糊查询带出下拉列表的问题

C# Winform自定义一个控件,一个按钮按下会显示ComboBox一样的下拉列表

C# winform combox 下拉框选项过长,显示不全,怎么解决

winform Textbox模糊搜索实现下拉显示+提示文字