Windows Forms: ListBox und ComboBox

Die ListBox ist ein Steuerelement, um ein oder mehrere Elemente auszuwählen. Standardmäßig kann in einer ListBox nur ein Element gewählt werden. Durch die Eigenschaft SelectionMode kann dies geändert werden. Setzen wir diesen Wert auf MultiExtended, so können null bis alle Elemente gewählt werden. Die einzelnen Elemente befinden sich in der Liste mit dem Eigenschaftsnamen Items. Die Eigenschaft Text (oder auch SelectedItem) gibt den Namen des aktuell ausgewählten Elementes zurück. Bei einer ListBox bei der eine Mehrfach-Auswahl möglich ist, können die gerade genannten Eigenschaften nicht verwendet werden. Hier sollte auf die Eigenschaft SelectedItems zugegriffen werden, welche eine Liste darstellt. Um Änderungen bei der Auswahl in einer ListBox mitzubekommen, können wir das Ereignis SelectedIndexChanged verwenden. Die Höhe einer ListBox kann verändert werden, jedoch zeigt eine ListBox immer nur vollständige Elemente an (und somit mindestens ein Element).
Eine ComboBox ist ein Steuerelement, welches teilweise der ListBox ähnelt. Wie bei der ListBox enthält auch die ComboBox eine Liste an Elementen. Eine ComboBox kann des Weiteren auch für die Eingabe von Text genutzt werden. Dieser Effekt ist oft nicht erwünscht, weshalb mit der Eigenschaft DropDownStyle und dem Wert DropDownList der Enumeration ComboBoxStyle die ComboBox zu einer Drop-Down-Liste umgewandelt werden kann, bei der keine Texteingabe möglich ist. Von der Höhe ist die ComboBox immer so hoch wie ein einzelnes Element (was wiederum abhängig von der Schriftart und -größe ist). Auch bei der ComboBox kann über die Eigenschaft Text und SelectedItem der Name des Elements abgerufen werden. Bei einer ComboBox, bei welcher eine Texteingabe möglich ist, sollte die Eigenschaft Text bevorzugt werden. Das Ereignis SelectedIndexChanged ist auch bei einer ComboBox verfügbar. Für eine ComboBox mit Text-Eingabe sollte jedoch u. U. das Event TextChanged bevorzugt werden.

Form1.cs

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
	labelListBox1.Text = listBox1.Text;
}

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
	labelListBox2.Text = "";
	for (int i = 0; i < listBox2.SelectedItems.Count; i++)
		labelListBox2.Text += (string)listBox2.SelectedItems[i] + (i != (listBox2.SelectedItems.Count - 1) ? "; " : "");
}

private void comboBox1_TextChanged(object sender, EventArgs e)
{
	labelComboBox1.Text = comboBox1.Text;
}

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
	labelComboBox2.Text = comboBox2.Text;
}
Download

LinksRechts