2010-06-03 61 views
2

我想從列表框中刪除一個項目,但不工作。甚至可以確定存在要刪除的項目。任何關於什麼可能出錯的想法?不能從列表框中刪除一個項目

iSelectedItem = ContactConflictListBox.ItemIndex; 


if ((iSelectedItem == -1)) 
{ 
    return; 
} 

ContactConflictListBox.Items.Remove(iSelectedItem); 
+1

你是否突出了代碼以確定發生了什麼?我想象不使用SelectedIndex屬性可能會導致您的問題。 – Tejs 2010-06-03 15:34:47

回答

4

您正在獲取索引,而不是項目。要按索引刪除,請使用ContactConflictListBox.Items.Remove(ContactConflictListBox.Items[iSelectedItem]);ContactConflictListBox.Items.RemoveAt(iSelectedItem);。請注意,不應該在代碼中使用RemoveAt方法,它只是出於基礎結構的原因。

+0

這也是我的第一個想法。不幸的是,該文檔說*此API支持.NET Framework基礎結構,不能直接在您的代碼中使用。* – OregonGhost 2010-06-03 15:42:57

+0

感謝man.it與RemoveAt合作 – Strider007 2010-06-03 15:44:55

+0

@ Strider007:如果您沒有看到它,RemoveAt是不打算直接使用,所以它*可能會在未來強加兼容性問題(儘管這不太可能)。請注意這一點。 – OregonGhost 2010-06-04 08:17:45

1

ListBox.ObjectCollection.Remove需要對象要刪除作爲參數。你必須要麼調用ListBox.ObjectCollection.RemoveAt(這是不幸的是,記錄爲基礎,只),或通過對象ListBox.ObjectCollection.Remove

ContactConflictListBox.Items.Remove(ContactConflictListBox.Items[iSelectedItem]); 

(或者,如果該指數不相關:)

ContactConflictListBox.Items.Remove(ContactConflictListBox.SelectedItem); 
3
if (ListBox.SelectedItem!= null) 
{ 
    ListBox.Items.Remove(ListBox.SelectedItem); 
}