在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ComboBox自带有属性可以实现自动匹配,但是它有一个弊端,只能从头开始匹配,例如"李四LS",只能输入“李四”或"李"才能匹配出来,而输入"LS"是找不出来的。 绑定到ComboBox的下拉选项中的后台数据: string[] data = new string[] { "张三|ZS", "李四|LS", "王五|WW", "赵六|ZL", "田七|TQ" }; comAutoSelect.Items.AddRange(data); 手动绑定是通过TextUpdate来实现,这里也考虑过TextChanged事件来实现,但是TextChanged事件和DroppedDown = true,以及键盘的上下键选择有冲突,因此选用TextUpdate事件。
主要的思路是当前台的文字改变时,刷新Items属性。有几个要注意。 1.不能用DataSource,因为绑定数据之后就不行对Items执行clear和add事件;另外,绑定数据后会默认选择第一行,如果需要输入多个字符,这样会产生全选,覆盖的输入效果。 2.在完成外Items的赋值后,执行comAutoSelect.Select(comAutoSelect.Text.Length, 0);将光标移到输入的最后,否则输入的文字会跟理想的字符串倒序。将光标移到最后可以用以下两种方法: comAutoSelect.Select(comAutoSelect.Text.Length, 0); comAutoSelect.SelectionStart = comAutoSelect.Text.Length; 3.可能对DroppedDown赋值的影响,光标被覆盖在界面下面了。需要增加一句Cursor = Cursors.Default;保持鼠标指针的形状。 TextUpdate的方法,实现了ComboBox模糊查找,自动匹配的效果。 文中的错漏,请回复纠正。 转载请注明出处:http://www.cnblogs.com/icyJ |
请发表评论