15.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.
public partial class Form1 : Form { ... }
|
Form gehört zum Namespace System.Windows.Forms und ist von ContainerControl abgeleitet, diese wiederum von ScrollableControl und letztgenannte von Control. Diese Klassen sollten wir uns zunächst ansehen.
15.5.1 Die Klasse »Control«
 
Control stellt Eigenschaften und Methoden bereit, die jede Windows-Komponente aufweist, und ist Basisklasse aller Windows-Komponenten mit visueller Darstellung. Aus Control sind viele Steuerelemente direkt abgeleitet, andere haben noch weitere, zwischengeschaltete Basisklassen. In Abbildung 15.8 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.
 Hier klicken, um das Bild zu vergrößern
Abbildung 15.8 Von »Control« abgeleitete Klassen (Ausschnitt)
Da Control 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. Hier auf alle Eigenschaften und Methoden im Einzelnen einzugehen, erspare ich mir. Sie werden im weiteren Verlauf dieses und der folgenden Kapitel noch die wichtigsten kennen lernen.
15.5.2 Die Klasse »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.
 Hier klicken, um das Bild zu vergrößern
Abbildung 15.9 Vertikale und horizontale Bildlaufleisten in einer Form
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 einen akzeptablen Wert 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 programmatischen Einstellung bietet es sich an, AutoScrollMinSize die Referenz auf ein Size-Objekt zuzuweisen:
this.AutoScroll = true;
|
this.AutoScrollMinSize = new Size(400, 300);
|
Die horizontale Bildlaufleiste wird in diesem Fall genau dann angezeigt, wenn die Breite der Form 400 Pixel unterschreitet, die vertikale, wenn die Höhe 300 Pixel unterschreitet.
Neben dem Typ Form ist das Steuerelement Panel, das wie eine Form ebenfalls zur Gruppierung untergeordneter Steuerelemente dient, die einzige für uns noch interessante Komponente, die sich ebenfalls aus der Klasse ScrollableControl ableitet.
15.5.3 Die Klasse »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 eins 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 von einem zum nächsten Steuerelement verschiebt.
ContainerControl bietet uns drei interessante Klassenmitglieder an: die beiden Eigenschaften ActiveControl und ParentForm sowie die Methode ProcessTabKey.
Tabelle 15.3 Wichtige Eigenschaften und Methoden von »ContainerControl«
Eigenschaft/Methode
|
Beschreibung
|
ActiveControl
|
Mit dieser Eigenschaft kann die Referenz auf das Steuerelement ermittelt werden, das aktuell fokussiert ist, oder der Fokus auf ein anderes Steuerelement gesetzt werden.
|
ParentForm
|
Manchmal möchte man auch die Referenz auf den Container abrufen, dem das Steuerelement zugeordnet ist. Diese Aufgabe löst die schreibgeschützte Eigenschaft.
|
ProcessTabKey
|
Mit dieser Methode kann programmgesteuert das in der Tabulatorreihenfolge nächste Steuerelement fokussiert werden. Mit dem Parameter kann dabei festgelegt werden, ob die Tabulatorreihenfolge vorwärts (= true) oder rückwärts (= false) durchlaufen werden soll.
|
|