2016-04-17 4 views
0

Ich versuche, die Checkbox-Indizes von einer CheckedListBox auf eine Beschriftung in C# zu beziehen. Ich konnte eine ListBox abrufen, bevorzuge jedoch die Formatierungsfreiheit, die die Labels bieten. Der Code, den ich habe, zeigt nur den letzten Index an und scheint die anderen zu überschreiben. HierAnzeige mehrerer Zeilen in einem Beschriftungsfeld in C#

ist der Code, den ich habe:

foreach (var itemListCheck1 in CheckedListBox1.CheckedIndices) { 
    string item = itemListCheck1.ToString(); 
    messageLabel1.Text = item + "\n"; 
} 

Offensichtlich ist die "\ n" nicht funktioniert zusätzliche Leitungen zur Verfügung zu stellen. Ich schätze jede Hilfe.

Antwort

2

Sie überschreiben den Beschriftungstext bei jeder Iteration. Versuchen Sie Folgendes:

messageLabel1.Text = ""; 
foreach (var itemListCheck1 in CheckedListBox1.CheckedIndices) { 
    string item = itemListCheck1.ToString(); 
    messageLabel1.Text += item + "\n"; 
} 
+1

Verwenden Sie 'StringBuilder', um alle Zeichenfolgen zu verketten und das Ergebnis anschließend der Beschriftung zuzuweisen. – joncloud

+1

Verwenden Sie auch 'Environment.NewLine' anstelle von' "\ n" '. – Trent

+0

Das sind beides gute Vorschläge, die den Code in vielerlei Hinsicht verbessern. Meine Absicht war, mich auf das Kernproblem zu konzentrieren, das verhinderte, dass der OP-Code wie vorgesehen funktioniert. –

Verwandte Themen