Einige visuelle Objekte

Es folgt nun eine genauere Betrachtung der wichtigsten Steuerelemente. 
Es werden dabei nicht alle verfügbaren Eigenschaften, Methoden und Ereignisse aufgeführt, 
sondern nur die wichtigsten beschrieben. 
Eine umfassende Referenz ist in den Hilfedateien zu Visual Basic zu finden.

Allgemeine Eigenschaften

Viele Steuerelemente besitzen gemeinsame Eigenschaften. 
Die wichtigsten sind:
Alignment Ausrichtung eines Textes
BackColor Hintergrundfarbe
ForeColor Vordergrundfarbe
Enabled Aktiv oder inaktiv
Visible Element sichtbar
Height Höhe
Width Breite des Steuerelements
Left Abstand vom linken Rand
Top Abstand vom oberen Rand
Index Index bei einem Array von Steuerelementen
Name Name des Steuerelements (nicht veränderbar zur Laufzeit)
Parent Übergeordnetes Steuerelement oder Fenster
TabIndex Index bei Tabulator-Reihenfolge
TabStop Soll Element mit Tabulator angesprungen werden können?
Darüberhinaus werden in vielen Elementen Schriftarten festgelegt. 
Diese werden durch folgende Eigenschaften definiert:

Font    Schriftart
FontBold    Schrift fett
FontItalic    Schrift kursiv
FontName    Schriftartname
FontSize    Schriftgrad (Schriftgröße)
FontUnderline    Schrift unterstrichen

Allgemeine Methoden

Viele Steuerelemente haben ebenfalls gleiche Methoden. Darunter sind:
Move Bewegen des Steuerelements
Refresh Neuzeichnen
SetFocus Den Focus auf das Steuerelement setzen

Ein Element hat den Focus falls es gerade aktiv ist und momentan Empfänger von Tasteneingaben ist. Meist ist dieses Element optisch beispielsweise durch einen gestrichelten Rahmen hervorgehoben.
SetFocus ist nur bei Elementen verfügbar, die auch angesprungen werden können.

Allgemeine Ereignisse

Es gibt eine Reihe von Ereignissen, die von vielen visuellen Elementen empfangen werden können. Im Allgemeinen empfängt nur ein Steuerelement ein Ereignis. Und zwar ist es dasjenige, das gerade den Focus hat oder über das sich der Mauszeiger gerade befindet.
Click Einfacher Mausklick auf Steuerelement
DblClick Doppelter Mausklick auf Steuerelement
GotFocus Erhalt des Focus
KeyDown Taste wird niedergedrückt
KeyPress Taste wird gedrückt
KeyUp Gedrückte Taste wird losgelassen
LostFocus Verlust des Focus
MouseDown Maustaste wird gedrückt
MouseMove Maus wird über Steuerelement bewegt
MouseUp Gedrückte Maustaste wird losgelassen

 

Die grundlegenden Steuerelemente (Controls, Objekte)

Label
Ein Label Objekt ist für die Darstellung statischer, d.h. vom Benutzer nicht veränderbarer Texte zuständig.
Die Eigenschaft CAPTION vom Typ String beinhaltet den dargestellten Text. 
Diese Eigenschaft kann zur Laufzeit sowohl gelesen als auch geschrieben werden.
Wichtige Eigenschaften:
Ein Label Feld hat unter anderem die folgenden Eigenschaften:

Alignment   

Ausrichtung

AutoSize   

Automatisch der Textgröße anpassen?

BackColor   

Hintergrundfarbe

BackStyle   

Hintergrund transparent(0) oder nicht (1)

BorderStyle   

Rahmenart

Caption

Anzuzeigender Text

WordWrap   

Wortumbruch?

TextBox
Eine Textbox stellt einen Text dar, der vom Anwender auch zur Laufzeit geändert werden kann. Die dazugehörige Eigenschaft heißt TEXT.
Wichtige Eigenschaften:

Alignment Ausrichtung
BorderStyle Rahmenart
Locked Ist die Eingabe durch den Benutzer gesperrt?
MaxLength Maximale Länge einer Texteingabe
MultiLine Mehrzeilig
ScrollBars Sollen Scrollbalken angezeigt werden
SelLength Eigenschaften der aktuellen Textselektion
SelStart SelText
Text Anzuzeigender Text
Die Eigenschaften SELLENGTH, SELSTART und SELTEXT sind zur Verwaltung des aktuell markierten Textes zuständig. 
SELSTART gibt dabei an, an welcher Position sich der Cursor befindet, bzw. an welcher Position 
das momentan selektierte Textstück beginnt. SELLENGTH ist die Länge des selektierten Textes, 
SELTEXT enthält dieses Textstück.

Wichtige Ereignisse:
Change Text wurde verändert

CommandButton

CommandButtons sind Befehlsschaltflächen, die auf Mausklicks reagieren und Aktionen auslösen. Diese Aktionen werden im Ereignis Click hinterlegt.
Wichtige Eigenschaften:
Caption          Anzuzeigender Text
Style              Art des Buttons
ToolTipText    Anzuzeigender ToolTip


CheckBox

Eine Checkbox ist ein Feld, das vom Anwender ausgewählt oder nicht ausgewählt sein kann. Mit einer Checkbox wird dem Benutzer ein Ja/Nein Element zur Verfügung gestellt. Ist es markiert, so wird es angekreuzt dargestellt. Zur Laufzeit enthält die Eigenschaft VALUE den momentanen Status (markiert=1, unmarkiert=0) dieses Elements.
Eine CheckBox ist einem OptionButton sehr ähnlich. Der Unterschied ist der, dass beliebig viele Checkboxen in einem Fenster oder in einer Gruppe markiert sein können, aber nur ein OptionButton pro Gruppe.

Wichtige Eigenschaften:
Caption     Anzuzeigender Text
Value        Markiert?

OptionButton

Ähnlich wie eine Checkbox kann auch ein OptionButton markiert oder nicht markiert sein. Allerdings kann in einer Gruppe von OptionButtons nur einer markiert sein. Die Information VALUE beinhaltet wiederum die Information, ob das Element markiert ist (1) oder nicht (0).
Um OptionButtons zu gruppieren, werden Sie in einem bestehenden Container wie beispielsweise ein Frame oder eine PictueBox angelegt.

Wichtige Eigenschaften:
Caption     Anzuzeigender Text
Value        Markiert?

ListBox

Eine ListBox stellt eine Liste von Elementen dar. Der Benutzer kann ein oder mehrere Elemente auswählen. 
Gibt es mehr Elemente als Zeilen so wird automatisch ein Scrollbalken angezeit.
Die Anzahl der Elemente in einer Liste ist in der Eigenschaft LISTCOUNT gespeichert. Das markierte Element steht in der Eigenschaft LISTINDEX. Dabei hat das erste Element den Index 0, das letzte LISTCOUNT-1. Ist kein Element ausgewählt, so ist LISTINDEX = -1.
Das Hinzufügen von Elementen geschieht mit der Methode ADDITEM, das Entfernen mit der Methode REMOVEITEM. Zum Leeren der ganzen Liste wird CLEAR verwendet.

Wichtige Eigenschaften:
Columns Anzahl der Spalten
List Liste der Elemente als Strings (zur Laufzeit nur lesbar)
ListCount Anzahl der Elemente
ListIndex Ausgewähltes Element
MultiSelect Mehrfachselektion zulassen?
SelCount Anzahl der selektierten Elemente
Selected Array von booleschen Werten, ist Element(i) selektiert?
Sorted Ist Liste sortiert?

Wichtige Methoden:
AddItem           Hinzufügen eines Elements
Clear                Leeren der Liste
RemoveItem     Entfernen eines Elements

ComboBox

Eine ComboBox ist wie der Name schon sagt eine Kombination aus TextBox und einer Liste. 
In der TextBox kann der Anwender Zeichen eingeben, während er in der Liste, die u.U. zugeklappt ist, 
ein Element auswählen kann.
Die Eigenschaft STYLE hat dabei eine besondere Bedeutung:
Ist STYLE=0 (Dropdown Combo), so wird ein Textfeld mit einer Dropdown-Liste 
(also eine Liste, die nur auf Knopfdruck aufgeklappt wird) dargestellt. 
Der Benutzer kann eigene Texte eingeben.
Ist STYLE=1 (Simple Combo), wird sowohl eine Textbox als auch eine Liste, die ständig aufgeklappt ist, angezeigt. 
Der Benutzer kann ebenfalls eigene Texte eingeben.
Ist STYLE=3 (Dropdown List), wird wie bei einem Dropdown Combo ein Textfeld mit einer Dropdown-Liste dargestellt, 
der Benutzer kann jedoch keine eigenen Texte eingeben, die nicht in der Liste enthalten sind.
Zusätzlich zu den Eigenschaften einer Liste gibt es die Eigenschaft TEXT.

Wichtige Eigenschaften:
List              Liste der Elemente als Strings (zur Laufzeit nur lesbar)
ListCount     Anzahl der Elemente
ListIndex     Aktuelles Element
Sorted         Ist Liste sortiert?


Wichtige Methoden:
AddItem          Hinzufügen eines Elements
Clear               Leeren der Liste
RemoveItem    Entfernen eines Elements

Wichtige Ereignisse:
Change           Text wurde verändert

Eine Besonderheit - Das Zeitgeber-Objekt

Das Zeitgeberobjekt (Timer, Uhr) veranlasst das Auslösen eines beliebigen Ereignisses oder
einer beliebigen Ereignisbehandlungsroutine in bestimmten Intervallen.

Wichtige Eigenschaften:
Enabled        Timer aktiviert oder nicht aktiviert
Interval        In welchen Abständen soll ein Ereignis oder Anweisungen ausgeführt werden?
                   Angabe in Millisekunden!


Das Picture Objekt
Ermöglicht die Anzeige eines Bildes bzw. einer Graphik.

Das Image Objekt
Ermöglicht die Anzeige eines Bildes.

Schieberegler
Horizontale und vertikale angeordete Controls, um Werte anzuzeigen oder einzustellen, die in einem bestimmten
Intervall mit definierter Untergrenze und Obergrenze liegen.




zum Abschluss noch zwei wichtige, flexible Objekte zur Anzeige und zur Eingabe von Daten

Messagebox
Mit Hilfe der Messagebox wird eine einfache Meldung optional mit Titel und verschiedenen Buttons ausgegeben. 
Die Syntax dazu lautet:
   MSGBOX ( Text [, Buttons] [, Titel])
Dabei ist Text der in der Messagebox anzuzeigende Text, Buttons legt die in der Box 
angezeigten Buttons (z.B. OK, Cancel, etc.) fest und Titel ist der Fenstertitel der Box.
Werden die Buttons weggelassen, so wird nur der OK-Button angezeigt, ist der Titel nicht angegeben, 
so wird standardmäßig der Projektname eingeblendet.
Für die verschiedenen Buttons gibt es die folgenden Konstanten:

Konstanten Werte Bedeutung
vbOKOnly 0 OK
vbOKCancel 1 OK und Cancel
vbAbortRetryIgnore 2 Beenden, Wiederholen, Ignorieren
vbYesNoCancel 3 Ja, Nein, Abbrechen
vbYesNo 4 Ja, Nein
vbRetryCancel 5 Wiederholen, Abbrechen

Beispielsweise werden mit vbAbortRetryIgnore die Schaltflächen Beenden, Wiederholen und Abbrechen dargestellt.
Zur visuellen Gestaltung gibt es folgende Konstanten, die einfach hinzuaddiert werden müssen:
Konstanten Werte Bedeutung
vbCritical 16 Stop-Zeichen
vbQuestion 32 Fragezeichen
vbExclamation 48 Ausrufe-Zeichen
vbInformation 64 Info-Zeichen

Um den Standard-Button festzulegen, addiert man einer der folgenden Konstanten:
Konstanten Werte Bedeutung
vbDefaultButton1 0 Button 1 ist standardmäßig aktiv
vbDefaultButton2 256 Button 2 ist standardmäßig aktiv
vbDefaultButton3 512 Button 3 ist standardmäßig aktiv

Zusätzlich kann man die Messagebox an das Programm bzw. an das System binden, 
d.h. das Programm bzw. alle Anwendungen des Systems werden unterbrochen, bis die Box geschlossen wurde. 
Diesen Zustand nennt man Anwendungs- oder System-Modal. 
Die dazugehörigen Konstanten sind vbApplicationModal (Wert 0) und vbSystemModal (Wert 4096).
Die Funktion liefert je nach ausgewählten Button einen entsprechenden Rückgabewert. 
Und zwar gibt es die folgenden Konstanten:
Konstante Wert Beschreibung
vbOK 1 OK
vbCancel 2 Abbrechen
vbAbort 3 Abbruch
vbRetry 4 Wiederholen
vbIgnore 5 Ignorieren
vbYes 6 Ja
vbNo 7 Nein

Beispiel: Abfrage vor Beenden eines Programms
Das folgende Beispiel gibt eine Messagebox aus, die den Anwender fragt, 
ob er das Programm tatsächlich verlassen möchte.
DIM answer AS INTEGER answer = MSGBOX ("Programm wirklich verlassen?", vbYesNo, "Programm beenden") IF answer = vbYes THEN END ELSE EXIT SUB END IF Bemerkung: Es ist grundsätzlich dringend anzuraten, Konstanten zu nutzen, wenn Visual Basic diese zur Verfügung stellt. Es wird nicht garantiert, dass die Werte in den folgenden Versionen erhalten bleiben! Im Übrigen ist es auch sehr sinnvoll, eigene Konstanten zu definfieren und diese anstatt von Literalen zu verwenden. Eine Konstante vbYesNo ist nämlich wesentlich aussagekräftiger als das Literal 4.

Inputbox
Eine weitere Funktion ist die Inputbox, mit der man einen einzeiligen Text vom Benutzer eingeben lassen kann. 
Die Syntax dazu lautet:
  InputBox(Text [, Titel] [, Standardwert] [, xpos] [, ypos])
Dabei ist Text die auszugebende Meldung (beispielsweise eine Aufforderung zur Eingabe eines Textes), 
Titel ist wiederum der Titel des Fensters, Standard ist eine Zeichenfolge, die als Voreinstellung im Textfeld 
angezeigt werden soll und xpos bzw. ypos bezeichnen die Koordinaten der Inputbox.

Beispiel: Abfrage eines Benutzernamens
Das folgende Beispiel frägt einen Benutzernamen ab und überprüft diesen. Ist der Benutzer nicht vorhanden, wird das Programm mit dem Befehl END verlassen.

DIM login AS STRING
 login = INPUTBOX ("Geben Sie Ihren Login ein:", "Anmeldung") 
IF login = "administrator" THEN 
    ......
    ELSEIF login = "gast" THEN
    ......
    ELSE MSGBOX "Benutzer nicht vorhanden!"  
END IF