lstAvailableColorsとlstSelectedColorsの2つのリストボックスがあります。各リストボックスの間には、[追加]と[削除]の2つのボタンがあります。lstAvailableColorsで1つまたは複数の色を選択し、[追加]ボタンをクリックした場合、それらをlstAvailableColorsから削除して、lstSelectedColorsに表示したいと思います。また、lstSelectedColorsで色が選択されていて、[削除]ボタンをクリックした場合、lstSelectedColorsから色を削除して、lstAvailableColorsに追加し直したいと思います。これを行うと、アイテムが削除されるときに次のエラーが発生します。
コレクションが変更されました。列挙操作が実行されない場合があります。
追加ボタンと削除ボタンのコードは次のとおりです。
追加:
protected void btnAdd_Click(object sender, EventArgs e)
{
foreach (ListItem item in lstAvailableColors.Items)
{
if (item.Selected)
{
lstSelectedColors.Items.Add(item);
lstAvailableColors.Items.Remove(item);
}
}
}
削除する:
protected void btnRemove_Click(object sender, EventArgs e)
{
foreach (ListItem item in lstSelectedColors.Items)
{
if (item.Selected)
{
lstAvailableColors.Items.Add(item);
lstSelectedColors.Items.Remove(item);
}
}
}