Checked List Box Item Check Event Strange Behavior
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 10 11 | private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { if (checkedListBox1.GetItemChecked(i) == false) { ... } else { ... } } |
由于某种原因,当上面的代码执行时,它的作用与我希望它做的相反。当一个项目第一次被选中时,它不会做任何事情,然而,当它被取消选中时,它会做 else 语句中的事情(同样,与它应该做的事情相反)。是否有一些我在这里忘记的财产?
您应该使用
这将按您的预期工作:
1 2 3 4 5 6 7 8 9 10 11 | private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { if (e.NewValue == CheckState.Checked) { ... } else { ... } } |
其次,至于为什么第一次单击复选框时,它没有反应:那是因为
为了达到类似的效果,设置
MSDN 表明检查状态在 ItemCheck 事件中直到完成后才更新。您可能正在寻找 e.NewValue.