我从数据库中选择一个条目,然后将文件列表加载到checkedListBox2并检查与我在数据库中的条目相关的文件。它全部采用checkedListBox2s的形式。选中的项目与数据库条目相关,未选中。
问题是,当我点击checkedListBox2的第一个项目(索引0)并检查该项目时,函数checkedListBox2.GetItemChecked()返回false而不是true,并取消选中我的第一个项目(我的SelectedIndexChanged事件没有没有取消选中项目的代码。只有当我第一次点击第一个项目时才会发生这种情况(如果我之前点击另一个项目,一切正常)。如果取消选中第一项,也可以正常工作。
private void checkedListBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (checkedListBox2.GetItemChecked(checkedListBox2.SelectedIndex) == true)
{
...
...
else
{
....
}
}
无法理解有什么不对。首先我认为问题是在加载checkedListBox2期间事件上升,但即使在加载后也是如此。我错过了什么吗?
答案 0 :(得分:0)
您是否尝试过使用ItemCheck事件,而不是使用SelectedIndexChanged?
检查项目后会触发ItemCheck事件,但选择项目时会触发SelectedIndexChanged事件,这意味着不一定要检查它。
private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e) {
if (checkedListBox.GetItemChecked(e.Index)) {
}
}
答案 1 :(得分:0)
考虑一下。
第一项是所选项目
该事件是SelectedIndexChanged
您可以单击第一个(索引0)100次,该事件不会被触发。
你需要挂钩一个不同的事件。
最好通过双向绑定来实现。