搜索checklistbox的文本框,但不记得检查的项目C#C调
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搜索checklistbox的文本框,但不记得检查的项目C#C调相关的知识,希望对你有一定的参考价值。
当我检查了checkedListBox1对列表中的项目和使用textBox1的我以前的检查搜索的一些项目已经一去不复返了。当我搜索使用textBox1的并检查列表中的一些项目,寻找另一个项目之前的检查中也没了。任何解决方案? C#
void ladujZBazy(string mustContains)
checkedListBox1.Items.Clear();
listSurowceTabela.Clear();
indexes.Clear();
bazaproduktowDBEntities dc = new bazaproduktowDBEntities();
var c1 = from d in dc.SurowceTabela select d.NazwaSurowca;
var c2 = from d in dc.SurowceTabela select "(" + d.PartiaSurowca + ")";
var c3 = from d in dc.SurowceTabela select d.IloscSurowca;
var c4 = from d in dc.SurowceTabela select d.JednostkaSurowca;
listSurowceTabela.Add(c1.ToList());
listSurowceTabela.Add(c2.ToList());
listSurowceTabela.Add(c3.ToList());
listSurowceTabela.Add(c4.ToList());
for (int i = 0; i < listSurowceTabela[0].Count; i++)
string strToAdd = "";
for (int j = 0; j < listSurowceTabela.Count; j++)
strToAdd += " " + listSurowceTabela[j][i] + " ";
if (mustContains == null)
checkedListBox1.Items.Add(strToAdd);
indexes.Add(i);
else if (strToAdd.ToLower().Contains(mustContains.ToLower()))
checkedListBox1.Items.Add(strToAdd);
indexes.Add(i);
private void textBox1_TextChanged(object sender, EventArgs e)
ladujZBazy(textBox1.Text);
答案
注释掉在代码的顶部的清除()方法。这应该表明你正在清除这些值。然后通过实际需要的东西要清除,什么没有你的工作方式。
另一答案
那么,你的问题主要在于在ladujZBazy()
这几行:
checkedListBox1.Items.Clear();
indexes.Clear();
你在哪里打电话来清除checkedListBox1
的所有内容和它的存储索引。
因此,每次调用你的函数做,你是从checkedListBox1
清理所有内容,然后重新创建/附加内容,回去吧。因此,它只是刷新所有项目在checkedListBox1
(即删除列表中的任何已检查的项目)。
因此,我们有2种方式,使我们可以使它发挥作用。
- 我们可以在
Boolean
参数添加到这将决定是否清除ladujZBazy()
或不checkedListBox1
。
而修改后的ladujZBazy()
随后将是这个样子:
void ladujZBazy(string mustContains, bool dropIndexes)
// the below code will only run the value is supplied as TRUE
if(dropIndexes)
checkedListBox1.Items.Clear();
listSurowceTabela.Clear();
indexes.Clear();
// your rest of the code goes here
然后从文本框的TextChanged
事件作为称呼它:
ladujZBazy(textBox1.Text,false);// pass TRUE to clear the checked items
- 或者,我们可以移动索引和检查项目结算及CheckListBox刷新逻辑到一个单独的函数为:
private void refreshChkListBox() checkedListBox1.Items.Clear(); listSurowceTabela.Clear(); indexes.Clear(); //your code to append items to list goes here
后来又调用这个函数来刷新CheckListBox
如果你有一个需要它。
以上是关于搜索checklistbox的文本框,但不记得检查的项目C#C调的主要内容,如果未能解决你的问题,请参考以下文章
在c#winform中怎样获取checklistbox选中的值