当检查被选中的框未选中时,我想删除该项目。问题是在调用 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;
}
}
谢谢您的帮助