0

我是 C# 的新手。在我的项目中,我有两个控件 ListBox 和 ListView

ListBox --> lbxEmpName
ListView --> lvEmpDetails

我尝试了以下代码:

     if (lvEmpDetails.Items.Count > 0)
       {
           for (int intCount = 0; intCount < lbxEmpName.Items.Count; intCount++)
           {
              for (int intSubCount = 0; intSubCount < lvEmpDetails.Items.Count; intSubCount++)
              {
                 if (lvEmpDetails.Items[intSubCount].Equals(lbxEmpName.Items[intCount]))
                 {
                    lbxEmpName.Items.Remove(lbxEmpName.Items[intCount]);
                 }
              }
           }
       }

如果我运行上面的代码,ListView Items 和 ListBox Items 之间没有匹配项(事实上必须有一些匹配项)。当我调试我的代码时,我看到了以下内容:它说的是SelectedItem我在这里给出Items(这就是我的程序不匹配项目的原因)
为什么它显示SelectedItem = ""而不是Items?我在我的代码中做错了吗?请建议。

在此处输入图像描述 在此处输入图像描述

4

2 回答 2

2

ListViewItems包含类型为 的对象ListViewItem。因此,将它们与 ListBox 中的对象进行比较是没有用的Items
如果你想比较他们的文本,你必须这样写:

if (lvEmpDetails.Items[intSubCount].Text == (string)lbxEmpName.Items[intCount])
{
     // Do something here
}

请注意,aListViewItem可以有多个子项,并且其Text属性返回其数据的第一列。

于 2012-10-25T08:29:47.213 回答
1

比较要比较的字符串值,而不是对象本身。

于 2012-10-25T08:29:13.163 回答