Когда флажок снят, я хочу удалить этот элемент. Проблема в том, что проверка / снятие галочки, кажется, происходит после вызова метода ItemCheck. Поэтому, когда я удаляю элемент, который портит e.Index, он делает отметку / снятие флажка с элемента после того, который я удаляю, или выдает ошибку, если это последний элемент.
Я нашел это: Как остановить ListView ItemCheck! , у которого есть подсказка сброса e.NewValue, которое частично работает, но все равно выдает ошибку, когда я удаляю последний элемент.
Причина, по которой я не просто использовал одно из событий мыши, заключается в том, что я хочу, чтобы навигация с помощью клавиатуры все еще была возможна на всякий случай.
Вот код, который у меня сейчас есть.
private void checked_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == CheckState.Unchecked)
{
checked.Items.RemoveAt(e.Index);
e.NewValue = CheckState.Checked;
}
}
Спасибо за помощь