有人可以指出我正确的方向吗?
我有一个填充的ListView并尝试将所选项目放入另一个ListView。我所获得的代码不会产生任何错误,也不会产生任何错误 显示任何选定的项目。
提前致谢。
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){
if (item.Text.ToLower().StartsWith(textBox1.Text.ToLower())){
count++;
item.BackColor = Color.DodgerBlue;
item.ForeColor = Color.White;
statusBar1.Panels[2].Text = "Found: " + count.ToString();
} else {
item.BackColor = Color.White;
item.ForeColor = Color.Black;
}
}
if (count > 1){
listView2.Visible = true;
foreach (ListViewItem item in listView1.Items){
listView2.Items.Add((ListViewItem)item.Clone());
}
}
}
答案 0 :(得分:0)
if (count > 1){
应为if (count > 0){
或if (count >= 1){
...如果只有一个匹配项存在。此外,不要看到您添加所选项目
答案 1 :(得分:0)
为什么不直接在第一个foreach中进行克隆?
foreach (ListViewItem item in listView1.Items)
if(item.Text.ToLower().StartsWith(textBox1.Text.ToLower()))
listView2.Items.Add((ListViewItem)item.Clone());
正如您现在所做的那样,您不会选择第一个列表中的任何项目,只会更改颜色。尝试使用SelectedIndices
或SelectedItems
属性。