有人可以向我解释为什么我的代码不会搜索ListView
中的整个对象。基本上我试图找到与文本框中输入的字符串匹配的所有文本。目前,代码只搜索第一列并停止...
如何让它搜索所有5列?
见下面的代码:
private void button3_Click(object sender, EventArgs e)
{
string s = " Search Via Forename";
int result = 0;
int count = 0;
result = string.Compare(textBox1.Text, s);
if ((result == 0) || (String.IsNullOrEmpty(textBox1.Text))){
MessageBox.Show("Please input forename...");
return;
}
foreach (ListViewItem item in listView1.Items){
foreach (ListViewItem.ListViewSubItem subItem in item.SubItems){
if (item.Text.ToLower().StartsWith(textBox1.Text.ToLower())){
count++;
statusBar1.Panels[2].Text = "Found: " + count.ToString();
}else{
listView1.Items.Remove(item);
}
}
}
button1.Text = "Clear";
textBox1.Visible = false;
button3.Visible = false;
button2.Visible = false;
}
答案 0 :(得分:1)
向我解释为什么我的代码不会搜索listview中的整个对象
因为你从不在循环中使用subItem
。我想你的意思是比较subItem
而不是item
:
foreach (ListViewItem item in listView1.Items){
foreach (ListViewItem.ListViewSubItem subItem in item.SubItems){
---- use subItem here
|
v
if (subItem.Text.ToLower().StartsWith(textBox1.Text.ToLower())){
count++;
statusBar1.Panels[2].Text = "Found: " + count.ToString();
}else{
listView1.Items.Remove(item);
}
}
}