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

2024-12-29 03:50

本文主要是介绍C# ComboBox下拉框实现搜索方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《C#ComboBox下拉框实现搜索方式》文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教...

C# ComboBox下拉框实现搜索

步骤一

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

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

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

步骤二

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

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

步骤三

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

// KeyUp 事件
private void cbhttp://www.chinasem.cnDept_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;
	// 这个是输入的光标位China编程置,要不python要会跑到最左边
	cbDept.SelectionStart = str.Length;

}

总结

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持China编程(www.chinasem.cn)。

这篇关于C# ComboBox下拉框实现搜索方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1152826

相关文章

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

如何使用CSS3实现波浪式图片墙

《如何使用CSS3实现波浪式图片墙》:本文主要介绍了如何使用CSS3的transform属性和动画技巧实现波浪式图片墙,通过设置图片的垂直偏移量,并使用动画使其周期性地改变位置,可以创建出动态且具有波浪效果的图片墙,同时,还强调了响应式设计的重要性,以确保图片墙在不同设备上都能良好显示,详细内容请阅读本文,希望能对你有所帮助...

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

C# string转unicode字符的实现

《C#string转unicode字符的实现》本文主要介绍了C#string转unicode字符的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1. 获取字符串中每个字符的 Unicode 值示例代码:输出:2. 将 Unicode 值格式化