Skip to main content

TabPage (System.Windows.Forms)

Eine TabPage ist im Grunde eine einzelne Seite innerhalb eines TabControl.
Sie stellt den Inhalt dar, der angezeigt wird, wenn ein bestimmter Tab ausgewählt ist.


Grundidee

Ein TabControl ist nur der Container für die Tabs.
Die eigentlichen Inhalte liegen in den jeweiligen TabPage-Instanzen.

Ohne TabPage → kein Inhalt. Nur leere Reiter. Sieht dann aus wie ein UI mit Identitätskrise.


Wichtige Eigenschaften

  • Text
    Der Titel des Tabs (das, was obensichtbar im Reiter angezeigt wird)Reiter)

  • Name
    Interner Name zur Referenzierung im Code

  • Controls
    Sammlung aller Controls,enthaltenen Controls

  • Dock
    Bestimmt, wie sich die aufTabPage dieserinnerhalb Seitedes liegenTabControl verhält
    (meist automatisch Fill, alles andere ist selten sinnvoll)

  • Enabled
    Legt fest, ob der Tab auswählbar ist

  • Visible
    Bestimmt, ob der Tab überhaupt angezeigt wird

  • BackColor / ForeColor
    Farben der Seite (nichtabhängig immer zuverlässig je nachvom Theme)

  • Padding
    Innenabstand zum Rand


Beispiel (PowerShell)

$tabControl = New-Object System.Windows.Forms.TabControl
$tabControl.Dock = "Fill"

$tabPage1 = New-Object System.Windows.Forms.TabPage
$tabPage1.Text = "Allgemein"
$tabPage1.Name = "TabGeneral"

$tabPage2 = New-Object System.Windows.Forms.TabPage
$tabPage2.Text = "Erweitert"
$tabPage2.Name = "TabAdvanced"

$tabControl.TabPages.Add($tabPage1)
$tabControl.TabPages.Add($tabPage2)

Controls hinzufügen

$button = New-Object System.Windows.Forms.Button
$button.Text = "Klick mich"

$tabPage1.Controls.Add($button)

Wichtig:
Controls werden immer direkt zur TabPage hinzugefügt, nicht zum TabControl.


Tab wechseln (programmatisch)

$tabControl.SelectedTab = $tabPage2

oder

$tabControl.SelectedIndex = 1

Events

TabPage selbst hat keine super-spezifischen Events wie das TabControl.
Sie verhält sich eher wie ein normales Panel.

Trotzdem gibt es ein paar relevante:

  • Enter
    Wird ausgelöst, wenn die TabPage aktiv wird (Tab wird ausgewählt)

  • Leave
    Wird ausgelöst, wenn die TabPage verlassen wird

  • Click
    Klick irgendwo auf der TabPage (nicht super hilfreich in der Praxis)

  • ControlAdded / ControlRemoved
    Wenn Controls dynamisch hinzugefügt oder entfernt werden

  • Paint
    Wenn die TabPage neu gezeichnet wird (Custom Drawing, eher selten)


Wichtig: Tab-Wechsel-Events liegen am TabControl

Wenn du wirklich auf Tab-Wechsel reagieren willst, bist du hier falsch unterwegs:

  • SelectedIndexChanged

  • Selecting

  • Selected

Die gehören zum TabControl, nicht zur TabPage.

Das ist einer dieser klassischen Momente, wo WinForms dich still verarscht.


Typische Stolperfallen

  • Controls erscheinen nicht
    wurdenfalscher ausParent Versehen dem Form oder TabControl statt(nicht der TabPage hinzugefügtgt)

  • Layout wirkt kaputt
    falsches Dock / Anchor innerhalb der TabPage falsch gesetzt

  • ZugriffEvents auffeuern Controlsnicht wie erwartet
    verschachteltefalsches Struktur beachtenObjekt (TabPage vs. TabControl -> TabPage -> Control)verwechselt)


Mentales Modell

Denk nicht in "Tabs".
Denk in Panels mit Umschalter.

Jede TabPage ist einfach ein eigenes Panel.
Das TabControl entscheidet nur, welches gerade sichtbar ist.


Wann sinnvoll?

  • Einstellungen gruppieren (Classic: "Allgemein / Erweitert / Netzwerk")

  • Viele Inhalte auf kleinem Raum strukturieren

  • UIPlatz übersichtlich halten ohne mehrere Formssparen


Wann vermeiden?

  • Wenn Nutzer ständig zwischen Tabs wechseln müssen → nervig

  • Wenn Inhalte stark voneinander abhäzusammenhängen → lieber ein zusammenhängendes Layout