2016-09-14 1 views
2

Da bekommen, dass ich einen Artikel in CheckedListBox auf diese Weise hinzugefügt:Kann nicht korrekten Wert von Posten in CheckedBoxList

checkedListBox1.Items.Add("ItemA"); 

Und lassen Sie uns sagen, dass dies das einzige Element in der Steuerung ist:

string s = checkedListBox1.GetItemText(0); 

Jetzt ist der Wert von s "0", wenn ich "ItemA" erwarte. Warum kann ich mit der Methode checkedListBox1.GetItemText(int itemIndex) keinen korrekten Wert erhalten?

+2

Meinten Sie 'CheckedListBox'? –

+2

Während Reza's Antwort richtig ist, glaube ich, dass Sie auch 'checkedBoxList1.Items [0] .ToString();' verwenden können, um den Text zu erhalten. – Equalsk

+2

@Equalsk, können Sie, wenn Sie 'DisplayMember' festgelegt haben, wie in der [Docs] (https://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.getitemtext (v = vs.110) .aspx) – adv12

Antwort

5

sollten Sie das Objekt übergeben, die ein Element der CheckedListBox zu GetItemText ist:

MessageBox.Show(checkedListBox1.GetItemText(checkedListBox1.Items[0]); 

Ansonsten GetItemText kehrt ToString von übergebene Objekt.

+1

Diese Antwort ist richtig, aber wow, das ist eine seltsame API, die Microsoft zur Verfügung gestellt hat. Ohne die Methodensignatur und die Dokumentation zu sehen, hätte ich dieselbe Annahme wie das OP gemacht. – adv12

+1

@ adv12 Die Sache, die mir komischer ist, ist das Fehlen der Methode ['GetItemValue'] (http://stackoverflow.com/a/38305363/3110834) in Listensteuerelementen (wie' ListBox' oder 'CheckedListBox') während IMO Es sollte eine solche Methode wie 'GetItemText' enthalten. –

+0

@ adv12 Ja, die API ist irgendwie seltsam, nicht sicher, ob dies eine Option für das OP ist, aber ich verwende normalerweise 'ListView's https://msdn.microsoft.com/en-us/library/system.windows. forms.listview% 28v = vs.110% 29.aspx mit 'CheckBoxes' true anstelle einer' CheckedListBox', finde ich eine ListView, mit der man in den meisten Fällen einfacher arbeiten kann. – jrh

2

Verwenden checkedListBox1.Items[0].ToString(); statt GetItemText()

+1

Siehe [diesen Kommentar] (http://stackoverflow.com/questions/39494797/cant-get-correct-value-from-item-in-checkedboxlist/39494952#comment66307449_39494797). –

Verwandte Themen