C# Can';无法从CheckedBoxList中的项获取正确的值
考虑到我以这种方式向CheckedListBox添加了一个项目: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
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]);