C# ComboBox下拉框实现搜索方式

 更新时间:2024年12月28日 09:18:03   作者:Name.Gy  
文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教

C# ComboBox下拉框实现搜索

步骤一

这个是加载窗口时候的部分代码,可忽视

// 这个是窗口加载时候的部分代码,可以忽略

// ComboBox 指定数据源  (DeptDs是一个全局变量)
cbDept.DataSource = DeptDs.Tables[0];  
// 指定 下拉框 显示内容的值
cbDept.ValueMember = "id";
// 指定 下拉框 显示的内容
cbDept.DisplayMember = "name";
// 指定当前选中的是哪个一个
cbDept.SelectedValue = ProtalInformation.OrgID;

步骤二

在 ComboBox 下拉框添加一个键盘事件

步骤三

实现下拉框搜索,对应 步骤二 键盘事件

// KeyUp 事件
private void cbDept_KeyUp(object sender, KeyEventArgs e)
{
    
    // 如果是回车的话,就选中
    if (e.KeyCode == Keys.Enter) {
        cb.DroppedDown = false;
        return;
    }
    // 判断如果是某些按键,就不触发
    if (e.KeyCode == Keys.ShiftKey || e.KeyCode == Keys.CapsLock || e.KeyCode ==Keys.Back || e.KeyCode == Keys.Down || e.KeyCode == Keys.Up) {
        return;
    }

	// 获取需要筛选的内容
	string str = cbDept.Text;
	// 从datatable中筛选,再次声明一下 DeptDs 是个全局变量
	DataRow[] drs = DeptDs.Tables[0].Select($"name like '%{str}%'");
	// 克隆表
	DataTable dt = DeptDs.Tables[0].Clone();
	// 将数据添加到表中
	foreach (DataRow dr in drs) {
		dt.Rows.Add(dr.ItemArray);
	}
    
    // 展开下拉列表
    cbDept.DroppedDown = true;

	// 赋值给下拉框
	cbDept.DataSource = dt;
	// 赋值选项的内容,变来变了去不好看
	cbDept.SelectedValue = "";

	// 将输入的内容重新赋值给下拉框
	cbDept.Text = str;
	// 这个是输入的光标位置,要不要会跑到最左边
	cbDept.SelectionStart = str.Length;

}

总结

本来想弄个GIF图片展示一下实现后的效果的,但是数据不方便公开,希望大家多多谅解。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#中List用法介绍详解

    C#中List用法介绍详解

    本文详细讲解了C#中List用法介绍,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • c# List和Dictionary常用的操作

    c# List和Dictionary常用的操作

    这篇文章主要介绍了c# List和Dictionary常用的操作,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • c#多线程之线程基础

    c#多线程之线程基础

    本文详细讲解了c#多线程之线程基础,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • c# 使用Task实现非阻塞式的I/O操作

    c# 使用Task实现非阻塞式的I/O操作

    这篇文章主要介绍了c# 使用Task实现非阻塞式的I/O操作,帮助大家更好的理解和学习c# 编程语言,感兴趣的朋友可以了解下
    2020-11-11
  • asp.net core mvc权限控制:在视图中控制操作权限

    asp.net core mvc权限控制:在视图中控制操作权限

    本文主要介绍了asp.net core mvc权限控制:在视图中控制操作权限。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Unity实现跑马灯效果的示例代码

    Unity实现跑马灯效果的示例代码

    这篇文章主要为大家详细介绍了如何利用Unity实现跑马灯效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C#在WinForm中使用WebKit传递js对象实现与网页交互的方法

    C#在WinForm中使用WebKit传递js对象实现与网页交互的方法

    这篇文章主要介绍了C#在WinForm中使用WebKit传递js对象实现与网页交互的方法,涉及针对WebBroswer控件及WebKit控件的相关使用技巧,需要的朋友可以参考下
    2016-03-03
  • C#实现单件模式的三种常用方法

    C#实现单件模式的三种常用方法

    这篇文章主要介绍了C#实现单件模式的三种常用方法,分析了单件模式的原理、功能与常用的三种实现方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • c# yield提高代码性能和可读性

    c# yield提高代码性能和可读性

    Yield可以让你的代码更加高效并拥有更高的可读性,我想已经没有什么借口可以阻止我们学习和使用yield
    2013-12-12
  • C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法

    C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法

    这篇文章主要介绍了C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法,结合实例形式分析了GetDesktopWindow函数用于获取窗口句柄的具体使用方法与相关注意事项,需要的朋友可以参考下
    2016-08-08

最新评论