2014-03-28 49 views
0

所以,我试图完成的是通过一个文本框(searchTxt)我可以得到一个列表框(lbRooms)来缩小和删除它的项目,以适应搜索框中文本的标准,但是当搜索栏的文本为空/你删除了其中的一些文本时,我希望项目回来。我试图做一个列表roomList:如何为列表框创建搜索栏?

public List<string> roomList = new List<string>(); 

每当一个项目被添加到列表框中,将其添加到列表,然后我想:

private void searchTxt_TextChanged(object sender, EventArgs e) 
    { 
     for (int i = 0; i < lbRooms.Items.Count; i++) 
     { 
      string s = lbRooms.Items[i].ToString(); 
      if (!s.Contains(searchTxt.Text)) 
      { 
       lbRooms.Items.RemoveAt(i); 
      } 
      else 
      { 
       if (!lbRooms.Items.Contains(roomList[i])) 
       { 
        lbRooms.Items.Add(roomList[i]); 
       } 
      } 
     } 
    } 

但是,这似乎并没有工作。

回答

0

你可以参考System.Linq和尝试:

if (!lbRooms.Items.Any(l => l == searchTxt.Text)) 
    lbRooms.Items.Add(searchTxt.Text); 

,因为它们可以键入那会添加字符。