什么是模糊查找,在我们使用搜索引擎时将会自动查找网络上的关键词做出对比,使用户可以从关键词中去选择
文中介绍的方法也存在一个弊端并没有解决,希望有解决办法的朋友也可以给我支支招
弊端
- 模糊查询区分英文大小写
- 模糊查找的下拉高度一致保持在第一次激活的高度
模糊查找的第一步
#region 设置Combobox的方法//模糊查询下拉的设置,此方法可以用于多个combox
public List<string> getComboboxItems(ComboBox cb)//初始化绑定默认关键词
{
List<string> listOnit = new List<string>();
for (int i = 0; i < cb.Items.Count; i++)//循环将数据项添加到listOnit中
{
listOnit.Add(cb.Items[i].ToString());
}
return listOnit;
}
public void selectCombobox(ComboBox cb, List<string> listOnit)//设置模糊查询Combobox
{
List<string> listNew = new List<string>();
cb.Items.Clear();//此处的数据清除是为了防止数据重复添加
listNew.Clear();
Cursor = Cursors.Default;//保持鼠标指针原来状态,有时鼠标指针会被下拉框覆盖,所以要进行一次设置
cb.DroppedDown = true;//自动弹出下拉框
foreach (var item in listOnit)//遍历items查数据
{
if (item.Contains(cb.Text))
{
listNew.Add(item);//符合,插入ListNew
}
}
cb.Items.AddRange(listNew.ToArray());//combobox添加已经查询到的关键字
//设置光标位置,否则光标位置始终保持在第一列,造成输入关键词的倒序排列
cb.SelectionStart = cb.Text.Length;
}
#endregion
第二步:使用combox的textupdate事件调用函数
selectCombobox(combox的名称, 对应combox的所有items);
使用以上两步操作就可以实现简单的combox的模糊查找啦
本人小白一名只能做到这样了,更深入到的暂时做不到,还请各位有好方法的大佬指教,如有雷同纯属巧合