CheckedListBox的奇怪行为

时间:2016-05-19 08:47:43

标签: c# winforms checkedlistbox

我有2个CheckedListBoxes。一个是数据绑定(名称为clbAnnually),而另一个(clbMonthly)则不是。对于未绑定的清单框(clbMonthly),我可以使用下面提到的行获取任何项目的文本:

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

另一方面,在数据绑定checklistbox(clbAnnually)的情况下,我无法使用相同的代码获取项目的文本。为什么会这样?

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

1 个答案:

答案 0 :(得分:2)

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

在所有情况下都适用的正确方法是使用专门提供的方法GetItemText

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

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