チェックされているボックスがチェックされていない場合、その項目を削除したい。問題は、ItemCheck メソッドが呼び出された後にチェック/チェック解除が行われるようです。そのため、e.Index を台無しにする項目を削除すると、削除した項目の後に項目のチェック/チェック解除が行われるか、最後の項目である場合はエラーがスローされます。
私はこれを見つけました: ListView ItemCheck を停止する! 部分的に機能する e.NewValue をリセットするヒントがありますが、最後のアイテムを削除するとエラーがスローされます。
マウス イベントの 1 つを単純に使用しなかった理由は、念のためキーボード ナビゲーションを引き続き使用できるようにしたいからです。
ここに私が今持っているコードがあります。
private void checked_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == CheckState.Unchecked)
{
checked.Items.RemoveAt(e.Index);
e.NewValue = CheckState.Checked;
}
}
助けてくれてありがとう