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ügthinzugefügt)

      • 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ängen → lieber ein zusammenhängendes Layoutzusammenhängen