12.20 Teiler (Splitter und SplitContainer) 

Im Windows Explorer befindet sich zwischen dem durch ein TreeView-Steuerelement darstellbaren Teilfenster und dem rechten Teilfenster ein Steuerelement, das mit der Maus gegriffen und verschoben werden kann. Dieses wird durch die Klasse Splitter beschrieben. Splitter sind immer an einem anderen Steuerelement angedockt, dessen Größe direkt vom Teiler verändert wird. Im Windows Explorer ist es das TreeView-Steuerelement, das selbst am linken Fensterrand angedockt ist. An der rechten Seite des TreeViews befindet sich der Splitter. Das Steuerelement, das sich auf der nicht angedockten Seite des Splitters befindet, nimmt häufig den gesamten verbleibenden Clientbereich ein.
Das sehr ähnliche Steuerelement SplitContainer vereinfacht die Aufteilung von Clientbereichen und hat ein paar zusätzliche Eigenschaften.
12.20.1 Splitter 

Eigenschaften
Mit den beiden Eigenschaften MinSize und MinExtra geben Sie an, wie klein das neben dem Splitter befindliche Steuerelement werden darf. Da ein Teiler immer zwischen zwei Steuerelementen sitzt, bezieht sich MinSize auf das Steuerelement, das am Rand des Containers angedockt ist, und MinExtra auf das andere Steuerelement.
Mit diesen Einstellungen, die standardmäßig 25 Pixel betragen, wird vermieden, dass das zusammengestauchte Steuerelement so klein wird, dass es vom Anwender nicht mehr erkannt und bedient werden kann.
BorderStyle legt die Rahmendarstellung eines Steuerelements fest. Die Standardeinstellung ist BorderStyle=BorderStyle.None. Mit BorderStyle.FixedSingle können Sie eine einfache Umrandung einstellen oder mit BorderStyle.Fixed3D eine dreidimensionale.
Ereignisse
Während der Teiler bewegt wird, treten permanent SplitterMoving-Ereignisse auf, vergleichbar mit den Ereignissen MouseMove, wenn der Mauszeiger über eine Komponente bewegt wird. Das Loslassen der Maustaste löst einmalig das Ereignis SplitterMoved aus. Danach wird die Größe der beiden Steuerelemente geändert. Bei der Auslösung der Ereignisse wird ein Objekt vom Typ SplitterEventArgs mit den in Tabelle 12.22 aufgelisteten Eigenschaften erzeugt.
Eigenschaft | Beschreibung | |
X |
X-Koordinate des Mauszeigers |
R |
Y |
Y-Koordinate des Mauszeigers |
R |
SplitX |
X-Koordinate der oberen linken Ecke des Splitters |
|
SplitY |
Y-Koordinate der oberen linken Ecke des Splitters |
Die Eigenschaften SplitX und SplitY geben die Position der linken oberen Ecke des Teilers an – relativ zum Clientbereich. SplitX ist bei horizontalen Teilern immer 0, während SplitY bei vertikalen Teilern immer 0 ist.
Beim Ereignis SplitterMoving sind die X- und Y-Koordinaten auch dann die Mauszeigerkoordinaten, wenn das Ziehen des Teilers den Anzeigebereich der Form verlässt. Der splittertypische Mauszeiger mit seinen zwei vertikalen oder horizontalen Linien wird auch außerhalb des Formularbereichs angezeigt, vorausgesetzt, man lässt die Maustaste nicht los. Sogar negative Koordinaten sind möglich. Das sollten Sie bei der Auswertung der Koordinaten in Ihren Programmen berücksichtigen.
12.20.2 SplitContainer 

SplitContainer ist dem zuvor behandelten Splitter sehr ähnlich. Es besteht aus einer verschiebbaren Leiste, die den Anzeigebereich eines Containers in zwei Bereiche mit veränderbarer Größe teilt. Die beiden Bereiche werden jeweils durch ein SplitterPanel beschrieben, in dem Sie nach Belieben Steuerelemente unterbringen können. Sie können mehrere SplitContainer ineinander verschachteln, sodass Sie auch sehr komplexe Fensterteilungen erreichen können. Im Gegensatz zu dem im vorherigen Abschnitt beschriebenen Splitter ist das Arbeiten mit SplitContainer intuitiver, und er hat zusätzliche Eigenschaften. Beispielsweise kann nun auch der Benutzer mit den Steuerungstasten der Tastatur den Splitter zwischen den beiden Teilflächen verschieben. Mit SplitterIncrement legen Sie fest, wie groß dabei die Schrittweite in Pixel ist. Voreingestellt ist ein einziges Pixel.
Die Orientation-Eigenschaft des SplitContainer-Steuerelements bestimmt die Richtung des Teilers. Mit der Standardeinstellung Vertical verläuft der Splitter von oben nach unten und erstellt eine linke und eine rechte SplitterPanel-Fläche, wobei die mit 1 nummerierte Fläche Panel1 je nach Orientierung links oder oben ist.
Sie können eines der beiden SplitterPanel fixieren mit der Folge, dass dieses bei einer Größenänderung der Form seine ursprüngliche Größe beibehält. Möchten Sie verhindern, dass der Benutzer den Teiler verschiebt, legen Sie IsSplitterFixed=True fest. Um einen der beiden Bereiche auszublenden, weisen Sie der Eigenschaft Panel1Collapsed oder Panel2Collapsed den Wert True zu. Die Mindestgröße der beiden Bereiche legen Sie mit den Eigenschaften Panel1MinSize und Panel2MinSize fest.
Schließlich haben Sie über die Eigenschaften Panel1 und Panel2 den vollen Zugriff auf die beiden Teilflächen und können diese beliebig konfigurieren.
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.