2012-10-25 105 views
0

我是新來的c#。在項目中,我有兩個控件列表框和ListView比較列表框項目和基於索引的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的項目和列表框項目之間不匹配(逸岸有必須是一些匹配)。當我調試我的代碼時,我看到下面的東西:這是說SelectedItem,而我在這裏給Items(這就是爲什麼我的程序不匹配項目)
它爲什麼顯示SelectedItem = ""而不是Items? 我在代碼中做錯了什麼?請建議。

enter image description here enter image description here

+0

你需要點擊那個'+'圖標才能獲得物品。 – Maheep

+0

列表框中有項目..我在這裏做錯了什麼。 –

+0

如您的屏幕截圖所示,列表框中有10個項目。嘗試通過點擊+瀏覽「非公衆成員」。你會得到的內容 – Maheep

回答

2

ListView的Items包含ListViewItem類型的對象。因此,將這些與ListBox的Items中的對象進行比較是沒有用的。
如果要比較他們的文字,你必須寫這樣的事:

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

請注意,ListViewItem可以有多個分項目及其Text屬性返回其數據的第一列。

+0

是的,這工作。謝謝。 –

1

比較要比較不是對象本身的字符串值。