Winform实现ComboBox模糊查询

2023-10-30

1、新增项目

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        List<string> listOnit = new List<string>();
        //输入key之后,返回的关键词
        List<string> listNew = new List<string>();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            BindComboBox();
        }

        private void BindComboBox()
        {
            listOnit.Add("张三");
            listOnit.Add("李四");
            listOnit.Add("王二");
            listOnit.Add("麻子"); 
            /*
             * 1.注意用Item.Add(obj)或者Item.AddRange(obj)方式添加
             * 2.如果用DataSource绑定,后面再进行绑定是不行的,即便是Add或者Clear也不行
             */
            this.comboBox1.Items.AddRange(listOnit.ToArray());
        }

        private void comboBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void comboBox1_TextUpdate(object sender, EventArgs e)
        {
            //清空combobox
            this.comboBox1.Items.Clear();
            //清空listNew
            listNew.Clear();
            //遍历全部备查数据
            foreach (var item in listOnit)
            {
                if (item.Contains(this.comboBox1.Text))
                {
                    //符合,插入ListNew
                    listNew.Add(item);
                }
            }
            //combobox添加已经查到的关键词
            this.comboBox1.Items.AddRange(listNew.ToArray());
            设置光标位置,否则光标位置始终保持在第一列,造成输入关键词的倒序排列
            this.comboBox1.SelectionStart = this.comboBox1.Text.Length;
            保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置。
            Cursor = Cursors.Default;
            //自动弹出下拉框
            this.comboBox1.DroppedDown = true;
        }
    }
}

1.绑定数据一开始用的DataSource方式,但是写到下面重新给ComboBox设置数据源的时候,报错:不能为已经设置DataSource的combobox赋值。

      解决方式:将赋值方式改为:Item.Add(obj)或者Item.AddRange(obj)方式

  2.下拉框的内容一直在增加

      解决方式:当文本框文本改变时,清空下拉框的内容,然后再添加数据。

  3.输入文本改变时,没有自动弹出下拉框显示已经查询好的数据。

      解决方式:设置comboBox的DroppedDown 属性为True。

  4.ComboBox文本框改变事件一开始选择用的是TextChanged事件,但是当在界面用 上 下键盘选择时,出现bug,不能进行选择。

      解决方式:将文本框改变事件换为TextUpdate事件,然后添加实现方法。

  5.当在ComboBox输入内容时,内容文本是倒序输出的,光标位置始终在最前面。

      解决方式:设置光标的显示位置,this.comboBox1.SelectionStart = this.comboBox1.Text.Length;

  6.输入内容改变时,用鼠标选择下拉列表项的时候,鼠标指针消失,被下拉框覆盖掉。

      解决方式:设置鼠标状态为一开始的默认状态,Cursor = Cursors.Default;

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Winform实现ComboBox模糊查询 的相关文章

  • C#---winform基础

    一 winform 1 winform应用程序是一种智能客户端技术 xff0c 我们可以使用winform应用程序帮助我们获得信息或者传输信息等 2 属性 Name 在后台要获得前台的控件对象 xff0c 需要使用Name属性 visibl
  • Winform

    自适应窗口布局 OnLayout 窗口在尺寸变化时 会调用OnLayout方法 所以 在form1 cs文件里重写OnLayout方法即可实现自适应 在OnLayout方法中 我们获取一下窗口的宽度和高度 根据窗口的宽度和高度重新设定控件的
  • Winform的控件学习整理篇

    窗体 窗体是整个WinForm的核心 xff0c 在Windows系统上的每一个界面都可以看作是一个窗体 xff0c 只不过其功能各异而已 新建一个空白的窗体 xff1a 窗体常用属性 xff1a name xff1a 窗体的名称 xff0
  • C#/winform设置窗体自动缩放适应不同尺寸的电脑屏幕大小

    窗体属性 xff1a AutoScaleMode属性 xff0c 可以设置窗体随着分辨率改变来适应电脑屏幕 系统默认是 xff1a Inherit None xff1a 禁用自动缩放 默认时 Font xff1a 根据类使用的字体 xff0
  • .NET编程——利用C#显示图片(WinForm)

    目录 前言 程序设计 前言 在Visual Studio下用C 实现导入图片并显示图片 xff0c 同时可以通过按键来切换图片 程序设计 功能及使用流程 该程序可实现从文件夹中批量导入图片并显示 获取图片左侧显示图片列表 xff0c 右侧显
  • C#客户端Json转DataTable

    之前我们有讨论过c 是如何处理json的 在我的客户端中 需要接收服务端的数据 并且用列表展示出来 列表控件我采用的是winfrom自带的DataGridView 从服务端得到的响应是一串json字符串 为了提高效率和简洁代码 我不想采用解
  • 获取自定义弹出框的DialogResult的值以及返回用户输入的值

    在编写Winform程序时 有些情况下需要自己定义一个弹出框 获取用户选择的是YES还是NO 并且获取用户输入的数据 首先 自定义弹出框非常容易编写 利用Form可以制作成一个对话框样式 并且在主程序中以模态形式显示 ShowDialog
  • 编程实现Ctrl+A或V==是否被按下

    private void lvBookmarks KeyPress object sender KeyPressEventArgs e if e Control e KeyCode Keys A region 全选ListView控件lvB
  • winform 登录跳转页面

    登录成功后跳转 改两个地方就可以解决而 第一个 上面的判断是登录成功与否 跳转需要的就是一句 当前页 改变DialogResult this DialogResult DialogResult OK 第二个 在Program cs里面 st
  • C# WinForm控件美化扩展系列之ListView(2)

    前面的一篇文章C WinForm控件美化扩展系列之ListView实现了隔行不同颜色和对列表头进行了美化 但遗憾的是对列表的最后的不包含列头的部分没有进行重绘 主要原因是上次没时间处理 因为处理那一部分是比较困难的 需要花不少时间 今天总算
  • Winform SplitContainer控件可调整大小

    IsSpliterFixed属性设为False FixedPannel属性设为Pannel1 要固定的面板的名称 之后鼠标移动到控件中间的分隔线 就可以调整大小了
  • C# 操作JSON的几种方式

    关于Json数据在开发中的重要性 自然不言而喻 本篇通过两种在c 中常用的方式来实现对Json数据的序列化和反序列化 为了实现大多数的需求 我们采用稍微复杂一点的数据模型 首先我们有以下json数据 name 张三 age 20 idCar
  • WinForm:禁用Panel容器滚动条自动移动位置的功能

    今天遇到了一个问题 描述如下 有一个Panel容器 将AutoScroll属性设置为True 此时Panel容器会在内容过多时自动展示一个滚动条 这个滚动条存在一个缺点 即会随着焦点变化自动滚向焦点位置 如果仅初始化界面时Panel滚动条位
  • Winform 编写一个读取并解析csv的程序

    众所周知 CSV是一种通用的 相对简单的文件格式 被用户 商业和科学广泛应用 所以在制作游戏时 可能会用到CSV来记录各个物品的数据 就像这样 ID Name Description ItemType 01 无机化学 第四版 风靡于各大高校
  • csharp:百度翻译

    参考 http api fanyi baidu com api trans product index http developer baidu com wiki index php title E5 B8 AE E5 8A A9 E6 9
  • WinForm 编程中控件的使用小技巧(splitter实现窗口分区域,改变Button的形状)

    一 Splitter 控件的主要作用就是将窗口分区并可以调节区域大小 比如 我想将窗口分为左右两个区域 并可以调节两个区域所占的比例 操作流程如下 1 新建一个窗口 Form1 2 在Form1中添加一个Panel控件Panel1 并将其D
  • WindowsFormsHost控件

    WPF和WinForms是两个不同的UI框架 都是由Microsoft创建的 WPF是WinForms的一个更现代的替代品 WinForms是第一个 NET UI框架 为了在两者之间轻松过渡 Microsoft确保WinForms控件仍然可
  • 获取IP地址

    IPAddress vAddress null if REGEX URL Match vIP Length lt 1 IPHostEntry vDns Dns GetHostEntry vIP if vDns AddressList Len
  • 史上最全 ——LINQ to SQL语句

    适用场景 实现过滤 查询等功能 说明 与SQL命令中的Where作用相似 都是起到范围限定也就是过滤作用的 而判断条件就是它后面所接的子句 Where操作包括3种形式 分别为简单形式 关系条件形式 First 形式 下面分别用实例举例下 1
  • WinForm应用实战开发指南 - 如何开发工作流模块的审批会签操作(二)

    前面文章中 点击这里回顾 gt gt 介绍了请假申请单和报销申请单两个不同的业务表单的流程处理 一个是单表信息 一个包含明细的主从表信息 后者包含了条件流程的处理 在流程审批中 一般还有一种流程处理就是会签的操作 会签处理是几个审批步骤中审

随机推荐

  • React.lazy懒加载组件

    1 React lazy的用法 React lazy方法可以异步加载组件文件 const Foo React lazy gt import componets ChildComponent React lazy不能单独使用 需要配合Reac
  • mysql关于mysql.server

    1 mysql server服务端工具 主要作用就是为了方便启动和关闭mysql服务 这个脚本中调用mysqld safe来启动mysqld 2 RPM包安装时 发现 etc rc d init d mysql和 usr share mys
  • 使用pip安装package的时候,如何不使用cache的文件,重新下载(防止package之间版本不匹配)

    我们在使用pip安装某一个package的时候 如果安装的有问题向卸载之后重新安装 卸载 pip uninstall mediapipe 重新安装 pip install mediapipe 但是 执行命令之后发现使用了cached的whe
  • CSerialPort教程4.3.x (2) - CSerialPort源码简介

    CSerialPort教程4 3 x 2 CSerialPort源码简介 前言 CSerialPort项目是一个基于C C 的轻量级开源跨平台串口类库 可以轻松实现跨平台多操作系统的串口读写 同时还支持C Java Python Node
  • 位运算符介绍(二):Java位运算符

    Java语言提供了7个位操作运算符 这些运算符只能用于整型操作数 这些整数操作数包括long int short char和byte 这里注意 相对于C C Java多了一个位运算符 gt gt gt 整型操作数也多了一个byte类型 C
  • 【建议收藏】机器学习模型构建(一)——建模调参(内附代码)

    引言 在前一阶段的学习中 我们完成了数据预处理等上游操作 接下来就要开始进行模型的构建 构建模型 sklearn中提供各种机器学习模型的类供我们使用 我们要根据我们的业务逻辑进行相关的筛选进行构建调参 在本例中我将使用sklearn内置的数
  • 机器学习--特征选择(Python代码实现)

    转自 每日一Python 微信公众号 特征选择就是从原始特征中选取一些最有效的特征来降低维度 提高模型泛化能力减低过拟合的过程 主要目的是剔除掉无关特征和冗余特征 选出最优特征子集 常见的特征选择方法可以分为3类 过滤式 filter 包裹
  • 重磅:Kafka 迎来 1.0.0 版本,正式告别四位数版本号!

    Kafka 从首次发布之日起 已经走过了七个年头 从最开始的大规模消息系统 发展成为功能完善的分布式流式处理平台 用于发布和订阅 存储及实时地处理大规模流数据 来自世界各地的数千家公司在使用 Kafka 包括三分之一的 500 强公司 Ka
  • OpenCV中基于LBP算法的人脸检测测试代码

    下面是OpenCV 3 3中基于CascadeClassifier类的LBP算法实现的人脸检测 从结果上看 不如其它开源库效果好 如libfacedetection 可参考 https blog csdn net fengbingchun
  • 自动控制原理-频率特性 G(jw ) 定义

    目录 预先的知识点 正题 定义一 物理定义 定义二 定义三 理解即可 不要求掌握 运用 预先的知识点 1 复数 一般定义
  • 超高频RFID读写器构建医疗化验全程RFID跟踪管理系统

    1 背景 Ambient ID发布了超高频UHF Gen 2 RFID系统的解决方案 使用Trimble旗下Thingmagic超高频RFID读写器 用来跟踪那些从医院到化验室里进行诊断测试的标本瓶 标本瓶里盛有人体组织或血液 这个方案可以
  • dnsmasq安装

    一 dnsmasq下载 下载地址 Index of dnsmasq 二 dnsmasq配置 决定dnsmasq支持什么功能是通过修改src config h 需要的XX功能通过 define XX make时 XX功能编译到dnsmasq命
  • JavaScript中的iterable

    遍历Array可以采用下标循环 遍历Map和Set就无法使用下标 为了统一集合类型 ES6标准引入了新的iterable类型 Array Map和Set都属于iterable类型 具有iterable类型的集合可以通过新的for of循环来
  • Laravel初探——安装

    安装Composer 1 curl sS https getcomposer org installer php 2 mv composer phar usr local bin composer 3 composer install 安装
  • Java之美[从菜鸟到高手演变]之设计模式二

    在阅读过程中有任何问题 请及时联系 egg 邮箱 xtfggef gmail com 微博 http weibo com xtfggef 如有转载 请说明出处 http blog csdn net zhangerqing 我们接着讨论设计模
  • 变量的声明和定义

    1 声明和定义的区别 变量声明规定了变量的类型和名字 而定义是在声明的基础上还开辟了存储空间 可能还会为变量初始化一个初始值 2 c 为什么要将声明和定义分开 c 支持分离式编译机制 允许将程序分割为若干个文件 每个文件可被独立编译 而为了
  • 华为云云耀云服务器L实例评测

    目录 引出 起因 si因 解决报错 诶嘿 连上了 不出意外 就出意外了 打开数据库 what 找华为云求助 教训 备份 教训 密码 解决 1 改密码 2 新建一个MySQL 密码设置复杂一点 3 开启 binlog备份 MySQL的binl
  • Java二维数组静态以及动态初始化方法

    import java util Random public class test2 public static void main String args 二维数组静态初始化 int arr 1 2 3 4 5 6 7 8 9 Syste
  • java8 函数式接口与 Lambda 表达式

    函数式接口与 Lambda 表达式 1 函数式接口 举例复习接口的匿名实现 函数式接口 2 Lambda表达式 什么是Lambda Lambda的几种编写规则解释示例 Lambda 的方法引用与构造器引用 方法引用的解释与编写 方法引用示例
  • Winform实现ComboBox模糊查询

    1 新增项目 using System using System Collections Generic using System ComponentModel using System Data using System Drawing