如题,如何根据textbox中输入的字符动态的筛选listbox中的内容,如果listbox得item的的字符串包含textbox中的字符串则保留这条item 否则删除掉这条item,c#怎么实现,知道的大虾帮忙解答下。。谢谢

解决方案 »

  1.   

    eg:            ListBox list = new ListBox();
                list.Items.Add("abc");
                list.Items.Add("11abc");
                list.Items.Add("dfea");
                list.Items.Add("dfebdf");            String str = "ab";
                for (Int32 i = 0; i < list.Items.Count; i++)
                {
                    if (list.Items[i].ToString().IndexOf(str) >= 0)
                    {
                        list.Items.Remove(list.Items[i]);
                        i--;
                    }
                }            for (Int32 i = 0; i < list.Items.Count; i++)
                {
                    Console.WriteLine(list.Items[i].ToString());
                }
      

  2.   

    谢谢。你这样的话就会把item删掉。
      

  3.   

    可能是我没描述清楚。
    我不是要删除Item,我只是想实现向MSDN的索引一样的功能。方便在listbox里查找item
      

  4.   

    假设ListBox数据源是
    DataTable dt=new DataTable();
    dt.Columns.Add("txt");
    dt.Rows.Add("hfkjahs");
    dt.Rows.Add("hfkjxvxzahs");
    dt.Rows.Add("hfkgsdgjahs");
    dt.Rows.Add("hfkjsgagahs");
    在dt中查找就可以,如下:listBox1.Items.Clear();
    for(int i=0;i<dt.Rows.Count;i++)
    {
      if(dt.Rows[i]["txt"].ToString().Contains("ok"))
         listBox1.Items.Add(dt.Rows[i]["txt"].ToString());
    }
      

  5.   

    DataTable dt= new DataTable();DataView dv = dt.DefaultView;
    dv.RowFilter= "";this.listBox1.DataSource = dv;
    this.listBox1.DisplayMember = "name";
    this.listBox1.ValueMember = "id";