CheckedListBox 的奇怪行为

Weird behaviour of CheckedListBox

我有 2 个 CheckedListBox。一个是数据绑定(名称 clbAnnually),而另一个(clbMonthly)是 not.For 未绑定的检查列表框(clbMonthly),我可以使用下面提到的行获取任何项目的文本:

    private void clbMonthly_ItemCheck(object sender, ItemCheckEventArgs e)
    {
      string itemText = clbMonthly.Items[e.Index].ToString();
    }

另一方面,在数据绑定检查列表框(clbAnnually)的情况下,我无法使用相同的方式获取项目的文本code.Why是这样吗??

    private void clbAnnually_ItemCheck(object sender, ItemCheckEventArgs e)
    {
     string itemText1 = clbAnnually.Items[e.Index].ToString();
    }

仅仅因为你使用的东西在某些情况下不小心起作用并不意味着它是正确的。

适用于所有场景的正确方法是使用专门提供的方法GetItemText:

string itemText = clbMonthly.GetItemText(clbMonthly.Items[e.Index]);

string itemText1 = clbAnnually.GetItemText(clbAnnually.Items[e.Index]);