c#是否有过滤列表框的选项?
本文关键字:选项 列表 是否 过滤 | 更新日期: 2023-09-27 18:18:15
我想知道是否有可能过滤列表框。我的意思是,如果我添加一个项目,它的名字已经在列表框中,你会得到一个消息框。显示,告诉你"项目已经在列表框中"。而且它不会被添加两次
您不需要遍历项目,因为ListBox的items集合实现了"Contains"方法。
if (listBox1.Items.Contains(Item))
{
MessageBox.Show("ListBox already contains Item");
}
"Item"在本例中是来自另一个ListBox的Item
更新。你可以这样写:
if (listBox1.Items.Contains(listBox2.SelectedItem))
{
MessageBox.Show("ListBox already contains Item");
}
else
{
listBox1.Items.Add(listBox2.SelectedItem);
}
使用数据绑定可能是解决方案之一:
List<string> SomeData=...
var filtered=SomeData.Where(...); // <-- Your filtering condition here
listBox1.DataSource = new BindingSource(choices, null);
在列表框中添加列表项的事件/方法中,您可以添加如下内容:
// search for list item in the listbox which has the text
ListItem li = theListBox.Items.FindByText("yourListItemName");
if (li != null)
{
// if list item exists display message
MessageBox.Show("ListBox already contains item with the name");
}
else
{
theListBox.Items.Add("yourListItemName");
}
这里是一个示例代码,尝试在您的代码中实现它
ListBox.ObjectCollection ListItem1= ListBox1.Items;
if(!string.IsNullOrEmpty(SearchBox.Text))
{
foreach (string str in ListItem1)
{
if (str.Contains(SearchBox.Text))
{
msgbox;
}
}
}