将所选项目从ListView1复制到ListView2

时间:2017-10-17 11:05:32

标签: c#

有人可以指出我正确的方向吗?

我有一个填充的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());
         }
     }
 }

2 个答案:

答案 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());

正如您现在所做的那样,您不会选择第一个列表中的任何项目,只会更改颜色。尝试使用SelectedIndicesSelectedItems属性。