11.5 Die Basisklassen einer Form
Das wichtigste Element einer Windows-Anwendung ist die Form. Über sie läuft die gesamte Interaktion zwischen Programm und Anwender ab. In diesem Abschnitt werde ich Ihnen die wichtigsten Informationen zur Gestaltung einer Form geben.
Jede Form ist von der gemeinsamen Basisklasse Form abgeleitet.
Partial Class Formular : Inherits System.Windows.Forms.Form
Form ist von ContainerControl abgeleitet, diese wiederum ist von ScrollableControl abgeleitet und letztgenannte von Control. Diese Klassen sollten wir uns zunächst ansehen.
11.5.1 Control
Control stellt Eigenschaften und Methoden bereit, die jede Windows-Komponente aufweist, und sie ist die Basisklasse aller Windows-Komponenten mit visueller Darstellung. Aus Control sind viele Steuerelemente direkt abgeleitet; andere haben noch weitere, zwischengeschaltete Basisklassen. In Abbildung 11.7 ist ein kleiner Ausschnitt der Vererbungshierarchie von Control zu sehen. Unter anderem sind dabei auch die Klassen Button, TextBox und Form dargestellt, mit denen wir in diesem Kapitel bereits gearbeitet haben.
Abbildung 11.7 Von Control abgeleitete Klassen (Ausschnitt)
Da Control die Basisklasse nahezu aller Windows-Komponenten ist, sind in dieser Klasse auch alle gemeinsamen Merkmale definiert. Die abgeleiteten Klassen erben diese, ganz im Sinne der Objektorientierung.
11.5.2 ScrollableControl
Die Klasse ScrollableControl stellt mit der Eigenschaft AutoScroll in erster Linie die Bildlauffähigkeit einer Komponente sicher und unterstützt sowohl horizontale als auch vertikale Bildlaufleisten, wenn die Eigenschaft auf True gesetzt wird. Das allerdings genügt noch nicht, um den gewünschten Effekt zu erzielen. Zusätzlich muss eine Angabe darüber erfolgen, unterhalb welcher Mindestgröße der Komponente die Rollbalken erscheinen sollen. Dazu dient die Eigenschaft AutoScrollMinSize vom Typ Size, über deren Member Height und Width die Höhe und die Breite der Komponente festgelegt werden.
AutoScrollMinSize hat einen Standardwert von (0; 0), der praktisch niemals erreicht wird. Deshalb sollte die Einstellung immer auf positive Werte festgelegt werden, wenn Bildlaufleisten in einer Form gewünscht werden. Stellen Sie diese Eigenschaft im Eigenschaftsfenster des Formulars ein, werden die beiden Größenangaben durch ein Semikolon voneinander getrennt. Bei der Einstellung mithilfe eines Programms bietet es sich an, AutoScrollMinSize die Referenz auf ein Size-Objekt zuzuweisen:
Me.AutoScroll = True Me.AutoScrollMinSize = New Size(400, 300)
Die horizontale Bildlaufleiste wird in diesem Fall genau dann angezeigt, wenn die Breite der Form 400 Pixel unterschreitet, und die vertikale erscheint, wenn die Höhe 300 Pixel unterschreitet.
Neben dem Typ Form ist das Steuerelement Panel das wichtigste zur Gruppierung untergeordneter Steuerelemente, das sich ebenfalls aus der Klasse ScrollableControl ableitet.
11.5.3 ContainerControl
Eine Windows-Komponente wird dann als Container bezeichnet, wenn sie fähig ist, mehrere Steuerelemente zu verwalten. Form ist ein solcher Container. Wenn in einem Container mehrere Steuerelemente enthalten sind, von denen grundsätzlich immer nur eines im Besitz des Fokus sein kann, muss es eine elementare Komponente geben, die den Fokus verwaltet. Diese Aufgabe hat die Klasse ContainerControl, die sich immer dann bemerkbar macht, wenn ein Anwender mit der -Taste den Fokus auf das nächste Steuerelement legt.
ContainerControl bietet uns drei interessante Klassenmitglieder an: die beiden Eigenschaften ActiveControl und ParentForm sowie die Methode ProcessTabKey (siehe Tabelle 11.4).
Mitglied | Beschreibung |
ActiveControl |
Zum Ermitteln oder Festlegen des Steuerelements, das den Fokus hat. |
ParentForm |
Referenz auf den Container (schreibgeschützte Eigenschaft). |
ProcessTabKey |
Programmgesteuerte Fokussierung des nächsten Steuerelements. Ist der Parameter True, wird die Tabulatorreihenfolge vorwärts durchlaufen; bei False rückwärts. |
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.