我正在制作一个winform,我已经拿了一个清单框。我想将核对表框中的已检查项目存储在数组列表中。我的核对表框中有5个项目,我想处理itemcheck
事件。
如果我检查一个项目itemcheck
事件触发但项目计数再次保持为0如果我检查事件处理程序项目中的2个项目计数变为1如果我重复此过程下次计数变为2(但现在我已检查3项目)。
请帮我解释下面这段代码是我正在使用的代码段:
private void CLB_Course_ItemCheck(object sender, ItemCheckEventArgs e)
{
List<string> items = new List<string>();
foreach (string ItemsChecked in CLB_Course.CheckedItems)
{
items.Add(ItemsChecked);
}
}
答案 0 :(得分:1)
正如Mitja所关联的问题所解释的那样,CheckedListBox并不是那么好。
如果您想要一个选中项目列表,可以考虑使用ListView
,它有一个CheckBoxes属性,您可以将其设置为true
以获得与您相同的行为将获得CheckedListBox
,但增加了ItemChecked的功能,因为该事件实际存在于ListView控件中。
在您的事件监听器中,您可以使用e.Item
属性(来自ItemCheckedEventArgs)获取已检查的项目,也可以使用ListView的CheckedIndices
获取所有选中的项目,或{{1属性。
答案 1 :(得分:0)
之所以发生这种情况,是因为当项目的检查状态发生变化时会引发该事件。直到事件发生后才会更新该值