C#中如何通过,TextBox+ListBox实现自动匹配功能?

C#实现,WinForm程序.程序中有一个TextBox和ListBoxListBox内有近万条数据项我要实现当在TextBox内输入文本后,如果ListBox内有这个文... C#实现,WinForm程序.

程序中有一个TextBox和ListBox
ListBox内有近万条数据项

我要实现当在TextBox内输入文本后,如果ListBox内有这个文本,则选择到那条记录。

我的实现思路是在TextBox的Changed事件中遍历ListBox所有项。

不过我觉得这个实现方法对于数据多的情况下可能会影响程序性能。
请问大家有没有什么好的实现思路呀?
------------------
由于程序须要必须要在界面内显示一个列表(所以我选择了ListBox),列表内有很多数据库(近万条)因为数据过多不方便选择,所以我加了一个TextBox来检查检索数据.就是这样。

我知道数据量大的话用ListBox不适合,但是不用ListBox又有什么可以实现在界面中显示一个列表呢?GridView肯定不适合,因为我要显示的内容就只有一列。
展开
 我来答
173199732
2008-03-18 · TA获得超过268个赞
知道答主
回答量:277
采纳率:0%
帮助的人:235万
展开全部
这要看你绑定数据后listbox的状态了! 比如是否已经排序,
例:如果是按ID排好序号了10000条数据 你要找第2003条,那么你可以用这种算法 先把10000分成2个5000条 看2003是否大于5000如果是小于5000那么在把小于5000的数据分成2个2500然后再找2003是否大于2500马上就找到了很快的!

编程序要根据不同状况做不同的程序的! 没有哪一种算法是最好的!只有最适用的算法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jonlyandyumi
2008-03-18 · 超过23用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:0
展开全部
把数据绑定到文本框中再加上下面的两个方法就可以自动匹配了
DataTable table = train.GetAlltx_train_province();
this.cmbStartProvince.DisplayMember = "provinceName";
this.cmbStartProvince.ValueMember = "provinceID";
this.cmbStartProvince.DataSource = table;
//自动匹配用户输入的内容
cmbStartProvince.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
cmbStartProvince.AutoCompleteSource = AutoCompleteSource.ListItems;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e22b3912e
2008-03-18 · TA获得超过475个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:175万
展开全部
1. 建议你不要使用TextBox的Changed事件,加个按钮也无妨。

2. 不要直接对ListBox进行遍历。

3. 遍历前,首先建立哈希表,然后把ListBox数据存入哈希表中,计算机会通过哈希算法,优化你的遍历质量。

4. 遍历过后再在ListBox通过索引,选择上。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式