我正在開發一個WinForms項目,其中有一個用戶可以輸入搜索查詢的TextBox
以及一個ListBox
,其中所有項目都可見並且突出顯示匹配的項目。是否鏈接了ListBox.Items和ListBox.SelectedItems?
當我遍歷,ListBox.Items
和修改ListBox.SelectedItems
,我得到一個InvalidOperationException: List that this enumerator is bound to has been modified. An enumerator can only be used if the list does not change.
這裏的
private void SearchTextBox_TextChanged(object sender, EventArgs e)
{
listBox.ClearSelected();
foreach (var item in listBox.Items) // Exception happens here...
{
if (item.ToString().Contains(SearchTextBox.Text))
listBox.SelectedItems.Add(item); // ... but I'm not modifying listBox.Items
}
}
我已經想到了一個更好的解決方案的代碼,但我還是想知道爲什麼發生異常。
是否有某種聯繫的ListBox.Items
和ListBox.SelectedItems
之間,或者爲什麼修改之一,請通過其他不可能枚舉?
在我的經驗中,SelectedItems是通過內置事件來設置的,通過點擊鼠標來選擇項目。 您是否試圖通過yourListBox.SetSelected(yourIndexToSelect)選擇項目; ? – Michael 2013-03-05 09:24:48
afaik它應該與一個正常的循環,但我還沒有做到這一點與列表框。你可以使用@邁克爾的嘗試然後 – Vogel612 2013-03-05 09:35:11