1.5 Arbeiten mit Steuerelementen
1.5.1 Steuerelemente formatieren
Zur besseren Anordnung der Steuerelemente auf dem Formular können Sie sie mithilfe der Maus nach Augenmaß verschieben. Dabei erscheinen automatisch Hilfslinien, falls das aktuelle Element horizontal oder vertikal parallel zu einem anderen Element steht.
Weitere Möglichkeiten bieten die Menüpunkte im Menü Format. In vielen Fällen müssen vorher mehrere Steuerelemente auf einmal markiert werden, siehe Abbildung 1.14.
Abbildung 1.14 Mehrere markierte Elemente
Dies geschieht entweder
- durch Umrahmung der Elemente mit einem Rechteck, nachdem Sie zuvor das Steuerelement Zeiger ausgewählt haben, oder
- durch Mehrfachauswahl, indem ab dem zweiten auszuwählenden Steuerelement die -Taste (wie für Großbuchstaben) oder die -Taste gedrückt wird.
Über das Menü Format haben Sie anschließend folgende Möglichkeiten zur Anpassung der Steuerelemente:
- Die ausgewählten Steuerelemente können horizontal oder vertikal zueinander ausgerichtet werden (Menü Format • Ausrichten).
- Die horizontalen und/oder vertikalen Dimensionen der ausgewählten Steuerelemente können angeglichen werden (Menü Format • Größe angleichen).
- Die horizontalen und vertikalen Abstände zwischen den ausgewählten Steuerelementen können angeglichen, vergrößert, verkleinert oder entfernt werden (Menü Format • Horizontaler Abstand/Vertikaler Abstand).
- Die Steuerelemente können horizontal oder vertikal innerhalb des Formulars zentriert werden (Menü Format • Auf Formular zentrieren).
- Sollten sich die Steuerelemente teilweise überlappen, können Sie einzelne Steuerelemente in den Vorder- bzw. Hintergrund schieben (Menü Format • Reihenfolge).
- Sie können alle Steuerelemente gleichzeitig gegen versehentliches Verschieben absichern (Menü Format • Steuerelemente Sperren). Diese Sperrung gilt nur während der Entwicklung des Programms.
Abbildung 1.15 zeigt ein Formular mit drei Buttons, die alle links ausgerichtet sind und im gleichen vertikalen Abstand voneinander stehen.
Abbildung 1.15 Nach der Formatierung
Übung
Laden Sie das Projekt MeinErstes aus dem vorherigen Abschnitt, markieren Sie darin mehrere Steuerelemente und testen Sie die einzelnen Möglichkeiten des Format-Menüs.
1.5.2 Steuerelemente kopieren
Zur schnelleren Erzeugung eines Projekts können vorhandene Steuerelemente einschließlich aller ihrer Eigenschaften kopiert werden. Markieren Sie hierzu die gewünschten Steuerelemente und kopieren Sie sie entweder
- über das Menü Bearbeiten • Kopieren und das Menü Bearbeiten • Einfügen
- oder mit den Tasten + und + .
Anschließend sollten die neu erzeugten Steuerelemente direkt umbenannt und an der gewünschten Stelle angeordnet werden.
Übung
Laden Sie das Projekt MeinErstes aus Abschnitt 1.4.6 und kopieren Sie einzelne Steuerelemente. Kontrollieren Sie anschließend die Liste der vorhandenen Steuerelemente im Eigenschaftenfenster auf einheitliche Namensgebung.
1.5.3 Eigenschaften zur Laufzeit ändern
Steuerelemente haben die Eigenschaften Size (mit den Komponenten Width und Height) und Location (mit den Komponenten X und Y) zur Angabe von Größe und Position. X und Y geben die Koordinaten der oberen linken Ecke des Steuerelements an, gemessen von der oberen linken Ecke des umgebenden Elements (meist das Formular). Alle Werte werden in Pixeln gemessen.
Alle diese Eigenschaften können sowohl während der Entwicklungszeit als auch während der Laufzeit eines Projekts verändert werden. Zur Änderung während der Entwicklungszeit können Sie die Eigenschaft wie gewohnt im Eigenschaftenfenster eingeben. Als Beispiel für Änderungen während der Laufzeit soll das folgende Programm (Projekt Steuerelemente) dienen, siehe Abbildung 1.16.
Abbildung 1.16 Position und Größe bestimmen
Der Programmcode:
Public Class Form1
Private Sub cmdPositionRel_Click(...) Handles ...
cmdTest.Location = New Point(
cmdTest.Location.X + 20,
cmdTest.Location.Y)
End Sub
Private Sub cmdPositionAbs_Click(...) Handles ...
cmdTest.Location = New Point(100, 200)
End Sub
Private Sub cmdGrößeRel_Click(...) Handles ...
cmdTest.Size = New Size(
cmdTest.Size.Width + 20,
cmdTest.Size.Height)
End Sub
Private Sub cmdGrößeAbs_Click(...) Handles ...
cmdTest.Size = New Size(50, 100)
End Sub
End Class
Listing 1.6 Projekt »Steuerelemente«
Zur Erläuterung:
- Der Kopf der einzelnen Prozeduren wurde aus Gründen der Übersichtlichkeit jeweils in verkürzter Form abgebildet. Dies wird bei den meisten nachfolgenden Beispielen ebenfalls so sein, außer wenn es genau auf die Inhalte des Prozedurkopfs ankommt.
- Das Formular enthält fünf Buttons. Die oberen vier Buttons dienen zur Veränderung von Position und Größe des fünften Buttons.
- Die Position eines Elements kann relativ zur aktuellen Position oder auf absolute Werte eingestellt werden. Das Gleiche gilt für die Größe eines Elements.
- Bei beiden Angaben handelt es sich um Wertepaare (X/Y bzw. Breite/Höhe).
- Zur Einstellung der Position dient die Struktur Point. Ein Objekt dieser Struktur liefert ein Wertepaar. In diesem Programm wird mit New jeweils ein neues Objekt der Struktur Point erzeugt, um das Wertepaar bereitzustellen.
- Bei Betätigung des Buttons Position Abs wird die Position des fünften Buttons auf die Werte X=100 und Y=200 gestellt, gemessen von der linken oberen Ecke des Formulars.
- Bei Betätigung des Buttons Position Rel wird die Position des fünften Buttons auf die Werte X = cmdTest.Location.X + 20 und Y = cmdTest.Location.Y gestellt. Bei X wird also der alte Wert der Komponente X um 20 erhöht, das Element bewegt sich nach rechts. Bei Y wird der alte Wert der Komponente Y nicht verändert, das Element bewegt sich nicht nach oben oder unten.
- Zur Einstellung der Größe dient die Struktur Size.
- Bei Betätigung des Buttons Größe Abs wird die Größe des fünften Buttons auf die Werte Width = 50 und Height = 100 gestellt.
- Bei Betätigung des Buttons Größe Rel wird die Größe des fünften Buttons auf die Werte Width = cmdTest.Size.Width + 20 und Height = cmdTest.Size.Height gestellt. Bei Width wird also der alte Wert der Komponente Width um 20 erhöht, das Element wird breiter. Bei Height wird der alte Wert der Komponente Height nicht verändert, das Element verändert seine Höhe nicht.
Nach einigen Klicks sieht das Formular aus wie in Abbildung 1.17.
Abbildung 1.17 Veränderung von Eigenschaften zur Laufzeit
1.5.4 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen, dass jedes Steuerelement seinen eigenen, eindeutigen Namen hat und immer mit diesem Namen angesprochen werden muss. Es passiert erfahrungsgemäß besonders am Anfang häufig, dass ein Programm nicht zum gewünschten Erfolg führt, weil ein nicht vorhandener Name verwendet wurde. In diesem Zusammenhang weise ich noch einmal auf die Namenskonventionen hin:
- Buttons sollten Namen wie z. B. cmdEnde, cmdAnzeigen, cmdBerechnen usw. haben.
- Labels sollten Namen wie z. B. lblAnzeige, lblName, lblUhrzeit, lblBeginnDatum haben.
Diese Namen liefern eine eindeutige Information über Typ und Funktion des Steuerelements. Falls Sie beim Schreiben von Programmcode anschließend diese Namen z. B. vollständig in Kleinbuchstaben eingeben, werden sie nach Verlassen der Zeile automatisch korrigiert. Daran können Sie schnell erkennen, ob Sie tatsächlich ein vorhandenes Steuerelement verwendet haben.
1.5.5 Verknüpfung von Texten, mehrzeilige Texte
Es können mehrere Texte in einer Ausgabe mithilfe des Zeichens & miteinander verknüpft werden. Falls Sie eine mehrzeilige Ausgabe wünschen, so müssen Sie zusätzlich einen Zeilenvorschub mithilfe der integrierten Visual-Basic-Konstante vbCrLf eingeben.
Nachfolgend wird das Projekt Steuerelemente ergänzt um ein Label, in dem die aktuelle Position und Größe des Buttons angezeigt werden. Dies soll nach Betätigung des Buttons Anzeige geschehen:
Public Class Form1
[...]
Private Sub cmdAnzeige_Click(...) Handles ...
lblAnzeige.Text =
"Position: X: " & cmdTest.Location.X &
", Y: " & cmdTest.Location.Y & vbCrLf &
"Größe: Breite: " & cmdTest.Size.Width &
", Höhe: " & cmdTest.Size.Height
End Sub
End Class
Listing 1.7 Projekt »Steuerelemente«, mit Anzeige
Nach einigen Klicks und der Betätigung des Buttons Anzeige sieht das Formular aus wie in Abbildung 1.18.
Abbildung 1.18 Anzeige der Eigenschaften
1.5.6 Eigenschaft BackColor, Farben allgemein
Die Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft BackColor festgelegt. Dabei können Sie die Farbe zur Entwicklungszeit leicht mithilfe einer Farbpalette oder aus Systemfarben auswählen.
Hintergrundfarben und andere Farben können auch zur Laufzeit eingestellt werden, dabei bedient man sich Farbwerten. Diese Farbwerte können Sie über die Struktur Color auswählen.
Ein Beispiel, ebenfalls im Projekt Steuerelemente:
Public Class Form1
[...]
Private Sub cmdFarbe_Click(...) Handles ...
Me.BackColor = Color.Yellow
lblAnzeige.BackColor =
Color.FromArgb(192, 255, 0)
End Sub
End Class
Listing 1.8 Projekt »Steuerelemente«, mit Farben
Zur Erläuterung:
- Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften, zum Beispiel Yellow. Der Wert kann der Eigenschaft BackColor des Steuerelements zugewiesen werden, hier ist dies das Formular selbst (Me).
- Außerdem bietet die Struktur die Methode FromArgb(). Diese kann auf verschiedene Arten aufgerufen werden. Eine dieser Arten erwartet genau drei Parameter, nämlich die Werte für Rot, Grün und Blau, jeweils zwischen 0 und 255.
Das Formular sieht nach der Änderung der Eigenschaft Farbe aus wie in Abbildung 1.19, wobei sich die Farbänderung bei der Schwarzweißdarstellung in diesem Buch natürlich leider nicht gut wiedergeben lässt.
Abbildung 1.19 Nach Änderung der Eigenschaft »Farbe«
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.