.NET CheckedListBox首先点击第一项

时间:2012-10-02 20:46:23

标签: c# .net events checkedlistbox

我从数据库中选择一个条目,然后将文件列表加载到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期间事件上升,但即使在加载后也是如此。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用ItemCheck事件,而不是使用SelectedIndexChanged?

检查项目后会触发ItemCheck事件,但选择项目时会触发SelectedIndexChanged事件,这意味着不一定要检查它。

private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e) {
    if (checkedListBox.GetItemChecked(e.Index)) { 

    }
}

答案 1 :(得分:0)

考虑一下。
第一项是所选项目 该事件是SelectedIndexChanged 您可以单击第一个(索引0)100次,该事件不会被触发。

你需要挂钩一个不同的事件。

最好通过双向绑定来实现。