0

使用此代码:

for (int i = 0; i <= (checkedListBoxPlatypi.Items.Count - 1); i++)
{
    if (checkedListBoxPlatypi.GetItemCheckState(i) == CheckState.Checked)
    {
        ReturnListPlatypi.Add(ParsePlatypusID(checkedListBoxPlatypi.GetItemText(i)));
    }
}

...和一个 CheckedListBox确实通过(FriendlyPlatypus 是一个带有内容的字符串)分配了文本:

checkedListBoxPlatypi.Items.Add(FriendlyPlatypus);

...ParsePlatypusID() 正在传递“0”...???

4

1 回答 1

2

我假设您没有在列表框中添加“i”,因此该对象不会有任何文本。你只需要直接的对象:

for (int i = 0; i <= (checkedListBoxPlatypi.Items.Count - 1); i++)
{
    if (checkedListBoxPlatypi.GetItemCheckState(i) == CheckState.Checked)
    {
        ReturnListPlatypi.Add(ParsePlatypusID(checkedListBoxPlatypi.Items[i].ToString()));
    }
}

事实上,如果您已经通过数据绑定添加了一个对象,并且您想直接进入“DisplayMember”字段,您可以使用:

for (int i = 0; i <= (checkedListBoxPlatypi.Items.Count - 1); i++)
{
    if (checkedListBoxPlatypi.GetItemCheckState(i) == CheckState.Checked)
    {
        ReturnListPlatypi.Add(ParsePlatypusID(checkedListBoxPlatypi.GetItemText( checkedListBoxPlatypi.Items[i])));
    }
}
于 2012-07-19T18:49:34.920 回答