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 imReiter angezeigt wird)Reiter) -
Name
Interner Name zur Referenzierung im Code -
Controls
Sammlung allerControls,enthaltenen Controls -
Dock
Bestimmt, wie sich dieaufTabPagedieserinnerhalbSeitedesliegenTabControlverhält
(meist automatischFill, alles andere ist selten sinnvoll) -
Enabled
Legt fest, ob der Tab auswählbar ist -
Visible
Bestimmt, ob der Tabüberhauptangezeigt wird -
BackColor / ForeColor
Farben der Seite (nichtabhängigimmer 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
→wurdenfalscherausParentVersehen demFormoderTabControlstatt(nicht derTabPagehinzugefügtgt) -
Layout wirkt kaputt
→ falschesDock/Anchorinnerhalb der TabPagefalsch gesetzt -
ZugriffEventsauffeuernControlsnicht wie erwartet
→verschachteltefalschesStruktur 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") -
VieleInhalteauf kleinem Raumstrukturieren -
UIPlatzübersichtlich halten ohne mehrere Formssparen
Wann vermeiden?
-
Wenn Nutzer ständig
zwischen Tabswechseln müssen→ nervig -
Wenn Inhalte stark
voneinander abhäzusammenhängen→ lieber ein zusammenhängendes Layout