Steuerelemente für mehrere Elemente: Arbeiten mit ListBox- und ComboBox-Steuerelementen

Aktualisiert: November 2007

In dieser Lektion erfahren Sie, wie Elemente zu Listen hinzugefügt und daraus entfernt werden. Außerdem erfahren Sie, wie eine Aktion ausgeführt wird, wenn ein Benutzer ein Element in einer Liste auswählt.

Wenn Sie Benutzern eine Liste von Auswahlmöglichkeiten zur Verfügung stellen möchten, können Sie die Liste von Elementen in einem ListBox-Steuerelement oder einem ComboBox-Steuerelement anzeigen.

Mit einem ListBox-Steuerelement können Sie mehrere Elemente gleichzeitig anzeigen. Dadurch können Benutzer einen Bildlauf durch eine längere Liste durchführen. Wenn ein Benutzer ein Element auswählt, wird es in der Liste hervorgehoben (siehe folgende Abbildung).

ListBox-Steuerelement

Ein ComboBox-Steuerelement ist eine Kombination aus einem Textfeld und einem Listenfeld. Standardmäßig wird ein Kombinationsfeld als Textfeld angezeigt. Wenn aber der Benutzer auf den Dropdownpfeil klickt, wird eine Liste angezeigt. Wenn ein Benutzer ein Element auswählt, wird es hervorgehoben und in der Standardansicht angezeigt (siehe folgende Abbildung).

Kombinationsfeld-Steuerelement

Das Hinzufügen von Elementen erfolgt bei Listenfeldern und Kombinationsfelder auf ähnliche Weise. Sie können Elemente mit der Add-Methode des ListBox-Steuerelements und der Add-Methode des ComboBox-Steuerlements hinzufügen.

Übung

So fügen Sie einem Listenfeld Elemente hinzu

  1. Klicken Sie im Menü Datei auf Neues Projekt.

    Das Dialogfeld Neues Projekt wird angezeigt.

  2. Klicken Sie auf Windows Forms-Anwendung und dann auf OK.

    Ein neues Windows Forms-Projekt wird geöffnet.

  3. Fügen Sie dem Formular ein ListBox-Steuerelement hinzu, und übernehmen Sie den Standardnamen ListBox1 unverändert.

  4. Doppelklicken Sie auf das Formular, um den Standardereignishandler im Code-Editor hinzuzufügen.

  5. Fügen Sie im Form_Load-Ereignishandler den folgenden Code hinzu, um der Liste Elemente hinzuzufügen.

    With Me.ListBox1.Items
        .Add("red")
        .Add("blue")
        .Add("green")
        .Add("yellow")
        .Add("orange")
        .Add("pink")
        .Add("brown")
        .Add("black")
    End With
    
  6. Drücken Sie F5, um das Programm auszuführen.

    Das Formular wird geöffnet und zeigt ein ListBox-Steuerelement an, das eine Liste von Farben enthält.

  7. Beenden Sie das Programm.

Ausführen einer Aktion, wenn sich das ausgewählte Element ändert

Sie können eine Aktion ausführen, zum Beispiel eine Farbe anzeigen, wenn der Benutzer das entsprechende Element in einem Listenfeld auswählt. Dazu müssen Sie Code in den SelectedIndexChanged-Ereignishandler des ListBox-Steuerelements schreiben. Ein entsprechendes Ereignis gibt es auch für das ComboBox-Steuerelement.

Welches Element in der Liste ausgewählt ist, können Sie mithilfe der SelectedItem-Eigenschaft ermitteln. Die in der Liste ausgewählte Farbe können Sie der BackColor-Eigenschaft eines Steuerelements mithilfe der FromName-Methode des Color-Objekts zuweisen.

So zeigen Sie die im Listenfeld ausgewählte Farbe an

  1. Fügen Sie dem Formular ein TextBox-Steuerelement hinzu, und übernehmen Sie den Standardnamen TextBox1 unverändert.

  2. Doppelklicken Sie auf das ListBox-Steuerelement, um den Standardereignishandler im Code-Editor hinzuzufügen.

  3. Fügen Sie im ListBox_SelectedIndexChanged-Ereignishandler den folgenden Code hinzu, um die Farbe im Textfeld anzuzeigen. Vergewissern Sie sich, dass die Variable ColorName einen Wert enthält, bevor Sie sie der BackColor-Eigenschaft des Textfelds zuweisen.

    Dim ColorName As String = CStr(ListBox1.SelectedItem)
    
    If ColorName IsNot Nothing Then
        Me.TextBox1.BackColor = _
            System.Drawing.Color.FromName(ColorName)
    End If
    
  4. Drücken Sie F5, um das Programm auszuführen.

  5. Wenn das Formular geöffnet wird, klicken Sie auf ein Element im Listenfeld, um zu sehen, ob die ausgewählte Farbe im Textfeld angezeigt wird.

  6. Beenden Sie das Programm.

Überprüfen, ob ein Element in der Liste vorhanden ist

Wenn Sie einer Liste Elemente hinzufügen, möchten Sie meist nicht, dass ein vorhandenes Element dupliziert wird. So möchten Sie zum Beispiel, dass Benutzer in der Lage sind, ein Element im Listenfeld durch Doppelklicken in ein Kombinationsfeld zu kopieren. Wenn das Element im Kombinationsfeld bereits vorhanden ist, soll es nicht erneut hinzugefügt werden. Mithilfe der Contains-Methode können Sie ermitteln, ob das Element im Kombinationsfeld bereits vorhanden ist. Bei Listenfeldern heißt die entsprechende Methode Contains.

So fügen Sie einem Kombinationsfeld Elemente hinzu

  1. Fügen Sie dem Formular ein ComboBox-Steuerelement hinzu, und übernehmen Sie den Standardnamen ComboBox1 unverändert.

  2. Öffnen Sie den Code-Editor, indem Sie mit der rechten Maustaste auf das Formular und dann auf Code anzeigen klicken.

  3. Klicken Sie im Code-Editor in der Dropdownliste Klassenname auf ListBox1.

  4. Klicken Sie in der Dropdownliste Methodenname auf DoubleClick, um den Ereignishandler zu erstellen.

  5. Fügen Sie dem ListBox1_DoubleClick-Ereignishandler den folgenden Code hinzu, um dem Kombinationsfeld Elemente hinzuzufügen. Da das Listenfeld auch leer sein kann, sollten Sie sicherstellen, dass das ausgewählte Element nicht leer ist, bevor Sie es hinzufügen.

    If ListBox1.SelectedItem IsNot Nothing Then
        If Not ComboBox1.Items.Contains(Me.ListBox1.SelectedItem) Then
            Me.ComboBox1.Items.Add(Me.ListBox1.SelectedItem)
        End If
    
        Me.ComboBox1.SelectedItem = Me.ListBox1.SelectedItem
    
    End If
    
  6. Drücken Sie F5, um das Programm auszuführen.

    Doppelklicken Sie im Listenfeld auf Elemente, und vergewissern Sie sich, dass diese Elemente nur einmal zum Kombinationsfeld hinzugefügt wurden.

  7. Beenden Sie das Programm.

Löschen eines Elements aus einem Listenfeld

Mit der Remove-Methode können Sie ein Element aus einem Listenfeld löschen. Statt Elemente zu kopieren, möchten Sie vielleicht, dass Elemente aus einem Listenfeld in ein Kombinationsfeld verschoben werden sollen. Sie können ein Element verschieben, indem Sie es zuerst zum Kombinationsfeld hinzufügen und dann aus dem Listenfeld löschen.

So löschen Sie Elemente aus einem Listenfeld

  1. Fügen Sie den folgenden Code über der End If-Anweisung im ListBox_DoubleClick-Ereignishandler hinzu.

    Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
    
  2. Drücken Sie F5, um das Programm auszuführen.

  3. Doppelklicken Sie im Listenfeld auf Elemente, und überprüfen Sie, dass diese Elemente aus dem Listenfeld entfernt und im Kombinationsfeld hinzugefügt wurden.

Nächste Schritte

In dieser Lektion haben Sie erfahren, wie Elemente zu Listen hinzugefügt und daraus entfernt werden. Außerdem haben Sie gelernt, wie eine Aktion ausgeführt wird, wenn ein Benutzer ein Element auswählt. In der nächsten Lektion erfahren Sie, wie Steuerelemente, die Datum und Uhrzeit anzeigen, verwendet werden.

Nächste Lektion: Anzeigen von Daten: Verwenden der Steuerelemente MonthCalendar und DateTimePicker

Siehe auch

Referenz

Übersicht über das ListBox-Steuerelement (Windows Forms)

Übersicht über das ComboBox-Steuerelement (Windows Forms)

Weitere Ressourcen

Erstellen der visuellen Darstellung eines Programms: Einführung in Windows Forms