【发布时间】:2017-06-06 14:13:11
【问题描述】:
我正在尝试在列表框中搜索某个数字(对象),该列表框中与一个字符串一起以突出显示它。在下面的代码中,我重写了一个 ToString() 方法来包含我的所有对象。
public override string ToString()
{
string reservatiestring;
reservatiestring = "Kamer: " + roomNumber + "" + " Op datum: " + datum + " Aantal personen: " + personen.Count + " Naam: " + reservatienaam;
return reservatiestring;
}
在此之后,我在下面的代码中将它添加到我的列表框中:
listBox1.Items.Add(reservatie.ToString());
我现在想搜索列表框中包含相同 roomNumber 对象的所有项目。为此,我尝试了带有文本的 Contains() 方法:“Kamer:”和我正在寻找的对象 +comboBox1.SelectedItem。然而,这总是失败,我的代码转到 else 选项给我错误消息。
private void buttonSearch_Click(object sender, EventArgs e)
{
listBox1.SelectionMode = SelectionMode.MultiExtended;
Reservations reservaties = new Reservations();
reservaties.roomnumberstring = "Kamer: " + comboBox1.SelectedValue;
for (int i = listBox1.Items.Count - 1; i >= 0; i--)
{
if (listBox1.Items[i].ToString().ToLower().Contains(("Kamer: " + comboBox1.SelectedValue)))
{
listBox1.SetSelected(i, true);
}
else
{
MessageBox.Show("error");
}
请注意:我所有的 roomNumber 对象都存储在组合框中,因此每当我在组合框中选择例如 roomNumber 3 并点击搜索时,应选择列表框中包含“Kamer: 3”的所有项目。
roomnumberstring 是我尝试过的一个选项,但不幸的是没有用。
reservaties.roomnumberstring = "Kamer: " + comboBox1.SelectedValue;
【问题讨论】:
-
不是将字符串添加到您的列表框,而是添加您的类的实际实例。它将使用 ToString() 表示形式显示在 ListBox 中。您可以将 ListBox 中的条目转换为您的类类型并访问其所有成员...
标签: c# search combobox listbox contains