Übung: Listen- und Kombinationsfelder


Das Ziel dieser Übung ist es, die verschiedenen Möglichkeiten von Listenfeldern und Kominationsfeldern zu lernen, und in der Lage zu sein, jede dieser Steuerelemente in einem VB-Programm einsetzen zu können. Am Ende dieser Übung sollte man folgendes beherrschen:


Listenfelder und Kombinationsfelder werden verwendet, um dem Benutzer eine Reihe an Auswahlmöglichkeiten zu bieten. Die Symbole in der Werkzeugleiste, die diese beiden Steuerelemente repräsentieren, sind für das Listenfeld und für das Kombinationsfeld.

Listenfelder

Ein Listenfeld wird verwendet, wenn dem Benutzer eine fixe Anzahl an Auswahlmöglichkeiten präsentiert wird (d.h. eine Auswahl kann nur zwischen den präsentierten Möglichkeiten getroffen werden, es gibt keine Möglichkeit der Eingabe einer anderen Alternative).

Beispiele hierfür könnten Listen mit den Wochentagen, mit verfügbaren Modellen in einem Katalog, die Flugziele von einem bestimmten Flughafen aus oder die verschiedenen Angebote eines Friseursalons sein.

Um ein Listenfeld zu erstellen, doppelclicken Sie auf das Symbol in der Werkzeugleiste. Ziehen Sie die Liste auf der Form zu der gewünschte Position und adjustieren sie die Größe entsprechend der Daten (Länge der Einträge), die sie beinhalten wird. Die folgende Abbildung zeigt ein Listenfeld, das auf Form1 eingerichtet worden ist. In der Mitte steht der Code, der für das Einladen einer Auswahl an Autos in das Listenfeld notwendig ist. Die Daten wurden in der Sub Form_Load-Prozedur eingetragen, somit erscheinen die Daten wenn Form1 geladen wird. Schließlich zeigt die danach folgende Abbildung die Form zur Laufzeit. Beachten Sie, daß vertikale Bildlaufleisten automatisch hinzugefügt werden, wenn das Listenfeld nicht groß genug ist, um alle Einträge auf einmal zu zeigen.


  Private Sub Form_Load ()
    List1.AddItem "Peugot 405"
    List1.AddItem "VW Passat"
    List1.AddItem "Volvo 740"
    List1.AddItem "Montego"
    List1.AddItem "Nissan Sunny"
    List1.AddItem "Vauxhall Astra"
    List1.AddItem "Ford Escort"
    List1.AddItem "Ford Sierra"
    List1.AddItem "Mercedes 230E"
    List1.AddItem "Citroën"
  End Sub

Beachten Sie, daß in obigem Beispiel die Einträge in der Liste in der gleichen Reihenfolge erscheinen, wie sie eingetragen worden sind. Wenn in der Entwurfszeit die Sorted-Eigenschaft des Listenfeldes auf Wahr (statt auf Falsch) gesetzt wird, würden die Autos zur Laufzeit in alphabetischer Reihenfolge erscheinen (Citroën zuerst).

Einträge eines Listefeldes können zur Laufzeit hinzugefügt oder entfernt werden.


  List1.AddItem "Jaguar 4.2"

Fügt diesen Eintrag zu einer Liste hinzu (wenn die Sortier-Eigenschaft auf Wahr gesetzt ist, wird Jaguar 4.2 in alphabetischer Reihenfolge ergänzt, andernfalls wird es am Ende der Liste hinzugefügt).

  List1.AddItem "Jaguar 4.2", 0

Die Listeneinträge sind nummeriert, mit 0, 1, 2, usw. Diese Zeile fügt den Eintrag Jaguar 4.2 am Beginn der Liste ein. Verwenden Sie diese Befehlsform nicht, wenn die Sortier-Eigenschaft auf Wahr gesetzt ist, die Ergebnisse sind nicht vorhersehbar.

  List1.RemoveItem  0

Der Befehl für das Entfernen benötigt einen Index. Die Listeneinträge sind durchnummeriert, beginnend bei 0. Diese Befehlszeile würde den ersten Eintrag aus der Liste entfernen.

Hinweis: Die ListCount-Eigenschaft speichert die Anzahl der Einträge einer Liste, somit kann List1.ListCount verwendet werden, um die Anzahl der Einträge in dem Listenfeld List1 festzustellen.

Die ListIndex-Eigenschaft gibt den Index des aktuell ausgewählten Eintrages zurück. Der Befehl List1.RemoveItem List1.ListIndex entfernt somit den markierten Eintrag aus der Liste.

Das Hinzufügen eines Eintrages kann recht elegant mit einem Dialogfeld zur Eingabeaufforderung (InputBox) gelöst werden. Versuchen Sie folgendes:

  List1.AddItem InputBox("Geben Sie ein Auto ein", "Auto hinzufügen")

Aufgaben:

  1. Versuchen Sie, das besprochene Listenfeld zu erstellen. Beobachten Sie die Funktionsweise während der Laufzeit mit gesetzter und mit nichtgesetzter Sortier-Eigenschaft. Fügen Sie dann eine Schaltfläche hinzu, wie unten abgebildet. Benutzen Sie die Click-Methode dieser Schaltfläche, um Einträge zur Liste hinzuzufügen oder aus ihr zu löschen.


  2. Erstellen Sie ein Textfeld, um die Anzahl der Einträge in der Liste anzugeben. Starten Sie das Programm und beobachten Sie, wie sich der Inhalt der Textbox ändert sobald Einträge zur Liste hinzugefügt oder aus ihr gelöscht werden. Die nachfolgende Abbildung zeigt den Code, der als letzte Anweisung bei der Click-Methode der Schaltfläche hinzugefügt worden ist. Beachten Sie, daß der feste Teil des angezeigten Textes als Zeichenkette eingegeben wurde (zwischen Anführungszeichen), der Wert der ListCount-Eigenschaft ist in die Zeichenkette eingeschoben, und durch Ampersand-Zeichen (&) mit diesem verbunden.

      Private Sub Command1_Click ()
        List1.AddItem InputBox("Geben Sie ein Auto ein", "Auto hinzufügen")
    
        Text1.Text = "Es sind " & List1.ListCount & " Autos verfügbar."
      End Sub
    

  3. Verändern Sie das Programm so, daß bei einem Doppelclick auf ein Listeneintrag das Textfeld einen Text über das gewählte Auto ausgibt - z. B.:

    	Sie haben den Ford Escort gewählt.
    

    (Wenn ein Listeneintrag mit der Maus angewählt wird, dann enthält die Eigenschaft List1.Text den Text des gewählten Listeneintrags).


    Kombinationsfelder

    Es gibt drei Arten von Kombinationsfeldern (Typ 0, 1 und 2), die Style-Eigenschaft legt die betreffende Art fest. Kombinationsfelder (Style 0 und 2) sind eine gute Wahl wenn der Platz limitiert ist, denn die vollständige Liste wird als aufklappbare Liste gezeigt, sie benötigt keinen Bildschirmplatz solange nicht auf den Pfeil geclickt wird. Kombinationsfelder (Style 0 und 1) sollten dort verwendet werden, wo der Benutzer einen anderen Eintrag vornehmen kann als die in der Liste vordefinierten.

    Aufklappbares (Drop-down) Kombinationsfeld (Style=0)

    Der Benutzer kann entweder Text in das Feld schreiben oder einen Eintrag aus der Liste auswählen. Die aufklappbare Liste wird angezeigt, sobald auf den Pfeil neben dem Eingabefeld geclickt wird.


    Einfaches Kombinationsfeld (Style=1)

    Diese Art von Kombinationsfelder hat keinen Pfeil zum Aufklappen, da die Liste ständig angezeigt wird. Wenn mehr Einträge vorhanden sind als auf einmal in der festgelegten Größe angezeigt werden können, werden automatisch vertikale Bildlaufleisten hinzugefügt. Wie auch beim vorangegangenen Typ kann der Benutzer Text in das Textfeld eingeben.

    Aufklappbares (Drop-down) Kombinationsfeld (Style=2)

    Es ist leicht verwirrend, dieses Steuerelement unter den Kombinationsfeldern zu finden. Es verhält sich wie ein normales Listenfeld, mit Ausnahme daß die Einträge nicht gezeigt werden ehe man auf den Pfeil clickt. Der Benutzer kann nur aus den Listeneinträgen auswählen, es kann selbst kein Text eingegeben werden.

    Hinweis: Kombinationsfelder vom Typ 0 und 2 können nicht auf die Doppelclick-Methode reagieren.

  4. Erstellen Sie eine Anwendung, die die folgenden Anforderungen erfüllen soll.

    Ein Fast-Food-Restaurant möchte ein automatisches Menü-Wahlsystem an seinen Tischen installieren. Die Gäste werden gebeten, anzugeben, ob sie 'normale', 'kalorienreduzierte' oder 'vegetarische' Kost mögen. Entsprechend zu dieser Auswahl werden sie drei Auswahl-Listen erhalten, um daraus eine entsprechende Vorspeise, Hauptspeise und Dessert zu wählen. Das Restaurant ist bereit, spezielle Wünsche für das Hauptgericht entgegenzunehmen, dies kann aber bis zu zwanzig Minuten Zubereitungszeit benötigen. Ein Textfeld soll die Bestellung des Gastes zusammenfassen (z.B. "Sie haben eine Hühnerleberpastete, ein Zanderfilet und einen Apfelstrudel gewählt"), und eine Schaltfläche wird dann die Bestellung zur Küche abschicken (kein Code hierfür notwendig!) und das System reinitialisieren für den nächsten Gast.

    Tip: Denken Sie bei der Auswahl der Steuerelemente für diese Übung auch an jene Steuerelemente, die in den vorherigen Übungen behandelt worden sind. Benutzen sie die Visible-Eigenschaft, um entsprechende Listenfelder sichtbar/unsichtbar zu machen. Versuchen Sie, Graphiken von anderen Anwendungen zu importieren, z.B. von WordArt.



Übung 2 (Befehlsschaltfläche, Optionsfeld und Kontrollkästchen)
Hauptseite
Übung 4 (Menü- und Listen-Bearbeitung)