GroupBox
Eine Eine <a href="https://doku.borinas.com/books/klassenwindowsforms/page/groupbox" title="GroupBox">GroupBox</a> ist ein Container zur visuellen Gruppierung von Controls.
Sie dient hauptsächlich dazu, zusammengehörige Eingabefelder, Optionen oder Steuerelemente optisch voneinander abzugrenzen.
Der Text der GroupBox wird als Überschrift im Rahmen dargestellt
Grundlagen
Das GroupBox selbst enthält keine besondere Logik.
GroupBox→ Container mit Beschriftungenthaltene Controls → eigentlicher Inhalt
GroupBox erstellen
# Klassisch
$groupBox = New-Object System.Windows.Forms.GroupBox
# .NET-Style
$groupBox = [System.Windows.Forms.GroupBox]::new()
Controls hinzufügen
Controls werden über die Controls-Collection hinzugefügt.
$groupBox.Controls.Add($textBox)
$groupBox.Controls.AddRange(@(
$label,
$button
))
Controls entfernen
$groupBox.Controls.Remove($textBox)
$groupBox.Controls.Clear()
Eigenschaften
Controls
Controls Controls [System.Windows.Forms.Control.ControlCollection]
Enthält alle Controls, die sich innerhalb der GroupBox befinden.
$groupBox.Controls.Add($button)
Enabled
Enabled Enabled [System.Boolean]
Legt fest, ob die GroupBox aktiviert ist.
Wird Enabled auf $false gesetzt, werden auch alle enthaltenen Controls deaktiviert.
$groupBox.Enabled = $false
Padding
Padding Padding [System.Windows.Forms.Padding]
Legt den Innenabstand fest, der zwischen Rahmen und enthaltenen Controls eingehalten wird.
$groupBox.Padding = 10
Text
Text [System.String]
Der Wert von Text bestimmt die Beschriftung der GroupBox.
Standardmäßig ist der Wert leer.
$groupBox.Text = "Office Installation"
Methoden
GroupBox.Controls
Methoden
–Methode
ControlsBeschreibung
Add
– Fügt ein Control hinzu
AddRange
– Fügt mehrere Controls hinzu
Remove
– Entfernt ein Control
Clear
– Entfernt alle Controls
Add()
$_.Controls.Add($control)
Die Methode Add() fügt ein Control zur Controls-Collection der GroupBox hinzu.
AddRange()
$_.Controls.AddRange( @(
$label, $textbox, $buttonbutton) ))
Die Methode AddRange() fügt mehrere Controls gleichzeitig zur Controls-Collection hinzu.
Remove()
$_.Controls.Remove($control)
Die Methode Remove() entfernt ein bestimmtes Control aus der GroupBox.
Clear()
$_.Controls.Clear()
Die Methode Clear() entfernt alle enthaltenen Controls.
Events
Events
- Event
Beschreibung
DoubleClick
– Doppelklick auf die GroupBox
MouseDown
– Maustaste wurde gedrückt
MouseUp
– Maustaste wurde losgelassen
MouseMove
– Maus wurde bewegt
MouseEnter
– Mauszeiger betritt die GroupBox
MouseLeave
– Mauszeiger verlässt die GroupBox
Enter
– Fokus betritt die GroupBox
Leave
– Fokus verlässt die GroupBox
ControlAdded
– Ein Control wurde hinzugefügt
ControlRemoved
– Ein Control wurde entfernt
Resize
– Größe wurde geändert
Paint
– GroupBox wird neu gezeichnet
$groupBox.Add_*({
param($sender, $e)
})
$sender→ Die GroupBox selbst ($this)$e→ EventArgs des jeweiligen Events
ControlAdded / ControlRemoved
Werden ausgelöst, wenn Controls zur Controls-Collection hinzugefügt oder daraus entfernt werden.
$groupBox.Add_ControlAdded({
param($sender, $e)
Write-Host "$($e.Control.Name) wurde hinzugefügt"
})
Tipps & Tricks
Typische Stolperfallen
-
Controls erscheinen nicht
Position liegt außerhalb der GroupBox
-
Alle Controls werden deaktiviert
GroupBox.Enabled = $false
-
Padding erzeugt kein automatisches Layout
Controls müssen weiterhin selbst positioniert werden
-
GroupBox für Layout verwendet
Für komplexe Layouts meist besser:
Panel,FlowLayoutPaneloderTableLayoutPanel
Mentales Modell
Die GroupBox ist ein Container mit Beschriftung.
Sie gruppiert Controls optisch und logisch, besitzt jedoch keine eigene Inhaltslogik.
Wann sinnvoll?
Einstellungen gruppieren
Formulare strukturieren
Optionen zusammenfassen
RadioButtons logisch gruppieren
Wann vermeiden?
Komplexe Layouts
Scrollbare Bereiche
Dynamische Containerlogik
Wenn lediglich ein Rahmen benötigt wird