Skip to main content

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 Beschriftung

  • enthaltene 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

Eigenschaft**Eigenschaft** Beschreibung**Beschreibung** Anchor**Anchor** Verankerung an den Rändern des Parent-Containers AutoSize**AutoSize** Größe automatisch an an Inhalt anpassen Controls**Controls** Enthaltene Controls Dock**Dock** Automatische Ausrichtung im Parent-Container Enabled**Enabled** Aktiviert oder deaktiviert enthaltene Controls Font**Font** Schriftart der Überschrift ForeColor**ForeColor** Farbe der Überschrift Padding**Padding** Innenabstand für enthaltene Controls Text**Text** Überschrift der GroupBox Visible**Visible** Sichtbarkeit der GroupBox

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

    Click – Mausklick auf die GroupBox

    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, FlowLayoutPanel oder TableLayoutPanel


    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