comboBox输入自动提示 自动关联(仿ie地址栏)C#

2024-03-08 04:48

本文主要是介绍comboBox输入自动提示 自动关联(仿ie地址栏)C#,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在做项目的时候,需要使用comboBox实现类似ie下拉列表一样的功能!最直接的思路是监听comboBox的textChanged事件,当事件发生时,从数据(我是用arrayList暂存数据的)中匹配出符合的字符串,然后添加到comboBox的下拉列表中。

1:如何在textChanged显示下拉列表,因为显示下拉列表一般是用户点击下拉的箭头显示的,后来使用 comboBox1.DroppedDown = true; 可以显示下拉列表的内容。
2:向下拉列表添加内容: comboBox1.Items.Add(str); 使用此语句可以添加str到下拉列表中
3:删除下拉列表的内容?因为当comboBox的text改变时,原来匹配的下来列表中的内容可能不再匹配,这样我的思路是每次text改变时将下拉列表内容全部删除,然后再重新遍历集合,将匹配的内容重新添加到下拉列表里: comboBox1.Items.Clear(); 可是这个语句会出现一个问题,就是text中的光标会自动跑到最左端:这样,这条思路没有继续下去,而且发现这样实现有时候鼠标会丢失光标,感觉很不好!
4:后来查到comboBox和textBox支持内置的搜索提示功能,在form的InitializeComponent()中添加如下语句:
this.comboBox1.AutoCompleteCustomSource.AddRange(new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" });
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; 
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
其中this.comboBox1.AutoCompleteCustomSource.AddRange(new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" });是将数据添加到搜索范围
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; 
是设定comboBox完成内置的搜索,默认是None,还有Append,和SuggestAppend属性,除了默认的None都可以实现搜索提示的功能,只是外观有所不同而已
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;制定搜索范围,由于在此我是选用new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" }作为自己的搜索范围,所以定义为CustomSource
System.Windows.Forms.AutoCompleteSource还有个Allurl属性,如果将代码改为
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.Allurl;
这样该comboBox可以实现同ie下拉列表一样的功能,其他的属性如AllSystemSources可以自己尝试,这样就完成了comboBox的搜索提示功能。  




  DataTable dt=downbl.ReturnIDCardTb();cbCardNum.DataSource = dt;cbCardNum.DisplayMember = "CardNO";cbCardNum.SelectedIndex = -1;List<string> lt=new List<string>();for(int i=0;i<dt.Rows.Count;i++){lt.Add(dt.Rows[i][0].ToString());}cbCardNum.AutoCompleteCustomSource.AddRange(lt.ToArray());this.cbCardNum.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;this.cbCardNum.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;


这篇关于comboBox输入自动提示 自动关联(仿ie地址栏)C#的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

zeroclipboard 粘贴板的应用示例, 兼容 Chrome、IE等多浏览器

zeroclipboard单个复制按钮和多个复制按钮的实现方法 最近网站改版想让复制代码功能在多个浏览器上都可以实现,最近看网上不少说我们的代码复制功能不好用的,我们最近将会增加代码高亮等功能,希望大家多多支持我们 zeroclipboard是一个跨浏览器的库类 它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t