C# Can';无法从CheckedBoxList中的项获取正确的值

C# Can';无法从CheckedBoxList中的项获取正确的值,c#,winforms,checkedlistbox,C#,Winforms,Checkedlistbox,考虑到我以这种方式向CheckedListBox添加了一个项目: checkedListBox1.Items.Add("ItemA"); 假设这是控件中唯一的项: string s = checkedListBox1.GetItemText(0); 现在s的值是“0”,而我期望“ItemA”。为什么我不能使用checkedListBox1.GetItemText(int itemIndex)方法获取正确的值?您应该将作为CheckedListBox项的对象传递给: 否则GetItemText

考虑到我以这种方式向CheckedListBox添加了一个项目:

checkedListBox1.Items.Add("ItemA");
假设这是控件中唯一的项:

string s = checkedListBox1.GetItemText(0);

现在s的值是
“0”
,而我期望
“ItemA”
。为什么我不能使用
checkedListBox1.GetItemText(int itemIndex)
方法获取正确的值?

您应该将作为
CheckedListBox
项的对象传递给:


否则
GetItemText
返回传递对象的
ToString

使用
checkedListBox1.Items[0].ToString()
而不是
GetItemText()

你的意思是
CheckedListBox
?虽然Reza的答案是正确的,但我相信你也可以使用
checkedBoxList1.Items[0]。ToString()
获取文本。@Equalsk,您可以,除非您设置了
displaymber
,如@Equalsk中所述更合适,因为它还支持
dispaymber
is set。有趣的是,我不知道这一点。谢谢!:-)这个答案是正确的,但是哇,这是微软提供的一个奇怪的API。如果没有看到方法签名和文档,我会做出与OP相同的假设。@adv12对我来说更奇怪的事情是列表控件中缺少方法(如
ListBox
CheckedListBox
),而在我看来,它应该包含
GetItemText
@adv12这样的方法,不确定这是否是OP的一个选项,但我通常使用带有
复选框的
ListView
s
true而不是
CheckedListBox
,我发现ListView在大多数情况下更容易使用。@jrh是的,它可能是一个选项,但是
ListView
不支持数据绑定,也不支持
DisplayMember
ValueMember
。我修复了没有
GetItemValue
的问题。请参阅。
MessageBox.Show(checkedListBox1.GetItemText(checkedListBox1.Items[0]);