2012-10-02 148 views
0

我从数据库中选择一个条目,然后将文件列表加载到checkedListBox2并检查与我在数据库中输入有关的项。这些都是checkedListBox2s的形式。选中的项目与数据库输入相关,不选中。当我点击checkedListBox2的第一个项目(索引0),并且该项目被选中时,函数checkedListBox2.GetItemChecked()返回false而不是true,并取消选中我的第一个项目(我的SelectedIndexChanged事件没有取消选中项目的代码)。只有当我第一次点击第一个项目时(如果我在另一个项目上点击之前,所有项目都正常工作),才会发生这种情况。如果第一个项目未被选中,所有工作都很好。.NET CheckedListBox第一项第一次点击

private void checkedListBox2_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (checkedListBox2.GetItemChecked(checkedListBox2.SelectedIndex) == true) 
     { 
      ... 
      ... 
     else 
     { 
      .... 
     } 
    } 

不明白什么是错的。首先,我认为问题是在加载checkedListBox2期间事件上升,但即使加载后也是如此。我错过了什么吗?

+0

了解英语是第二语言买这个不清楚。而你对woni的回应则更不明确。 – Paparazzi

+0

对不起,你是对的)我的英语不太好。 – teoring

回答

0

想一想。
第一个项目是选定的项目。
事件是SelectedIndexChanged。
您可以单击第一个(索引0)100次,并且该事件不会被触发。

您需要挂钩不同的事件。

更好的做法是通过双向绑定。

0

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

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

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

    } 
} 
+0

我知道,checkedListBox中的每个检查项都有一个值,所以我使用此事件在numericUpDown中显示该值。当我点击一个项目,如果它检查,我显示与该项目有关的价值 – teoring

相关问题