TextBox
ユーザーが検索クエリを入力できるListBox
場所と、すべてのアイテムが表示され、一致したアイテムが強調表示される場所があるWinFormsプロジェクトに取り組んでいます。
を反復し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
、または一方を変更すると他方を列挙できなくなるのはなぜですか?