Skip to main content

Form

Namespace: System.Windows.Forms

  1. Basis-Properties / Eigenschaften
    • Property – Standardwert
      Beschreibung oder Erläuterung der Eigenschaft

    • AutoScaleMode – Font
      Skalierung basierend auf Schriftgröße

    • AutoSize – $false
      Passt die Form automatisch an den Inhalt an

    • BackColor – Control
      Hintergrundfarbe

    • ClientSize – (300,300)
      Innenbereich der Form (ohne Rahmen)

    • ControlBox – $true
      Zeigt Schließen / Minimieren / Maximieren

    • ForeColor – ControlText
      Standard-Textfarbe

    • FormBorderStyle – Sizable
      Fensterrahmen (None, FixedSingle, Sizable, …)

    • Icon – $null
      Fenster-Icon ([Icon]::new("App.ico"))

    • KeyPreview – $false
      Form bekommt Key-Events vor Controls

    • MaximizeBox – $true
      Maximieren erlauben

    • MaximumSize – (0,0)
      Maximalgröße (0 = unbegrenzt)

    • MinimumSize – (0,0)
      Minimale Größe

    • Opacity – 1.0
      Transparenz (0.0 – 1.0)

    • Padding – (0)
      Innenabstand

    • StartPosition – WindowsDefaultLocation
      Startposition des Fensters

    • ShowIcon – $true
      Icon anzeigen

    • ShowInTaskbar – $true
      In Taskleiste sichtbar

    • Size – (300,300)
      Fenstergröße

    • Text – ""
      Fenstertitel

    • TopMost – $false
      Immer im Vordergrund

    • WindowState – Normal
      (Normal, Minimized, Maximized)


    Eigenschaften, die sich gegenseitig beeinflussen

    • AutoSize = $true → ignoriert Size

    • Dock = "Fill" → ignoriert AutoSize

    • Dock = "Top" / "Bottom" → Width wird ignoriert

    • Dock = "Left" / "Right" → Height wird ignoriert

    • FormBorderStyle = "None" → keine ControlBox, kein Icon sichtbar

  2. Eine Form ist das Hauptfenster deiner Anwendung.
    Sie ist der Container für alle anderen Controls.


    Grundidee

    Die Form ist die Bühne.

    • enthält alle Controls
    • verwaltet Layout und Lebenszyklus
    • steuert Anzeige (Show / ShowDialog)

    Typischer Ablauf

    1. Properties setzen
    2. Controls hinzufügen
    3. Events belegendefinieren
    4. Form anzeigen (Show() / mappen
    5. ShowDialog())
    erbt
    von

    Form Controls

    erstellen
    # 
    Klassisch $form = New-Object System.Windows.Forms.Form # .NET-Style $form =

    Form


    Layout

    & Verhalten form.Size = [System.Drawing.Size]::new(400, 300) $form.StartPosition =
    PropertiesStandardwertBeschreibung
    AutoScaleMode"Font"
    AutoSize$false
    BackColorControl
    ClientSize300,300Innenoberfläche
    ControlBox$trueSteuert, ob X (Schließen), _ (Minimieren) oder Maximieren angezeigt wird
    ForeColorControlText
    FormBorderStyle"Sizable"
    Icon$null[Icon]System.Windows.Forms.Form]::new(App.ico))
    anzeigen
    KeyPreview# Nicht blockierend
    $form.Show()
    
    # Modal (blockierend)
    $form.ShowDialog()
    

    Controls hinzufügen

    $falseform.Controls.Add($button)
    $form.Controls.AddRange(@($label, $textbox))
    

    MaximizeBox
    $true

    MaximumSize0,0"CenterScreen"

    Maximalgröße

    $form.TopMost

    0= bedeutet unbegrenzt

    MinimumSize0,0Verhindert zu kleines Resize
    Opacity1.0Geht von 0.0 bis 1.0
    Padding0,0,0,0
    StartPosition"WindowsDefaultLocation"
    ShowIcon$true
    ShowInTaskbar$true
    Size300,300Fenstergröße
    Text Fenstertitel / Überschrift
    TopMost$falseFenster bleibt im Vordergrund
    WindowStateNormalWeitere Möglichkeiten: Minimized, Maximized
    verwendet

    istderLebenszyklus-Controller deiner UI.

  3. wann

    etwas

    wann

    etwasendet

    ist


    wenn aktivwird ignoriert / nicht sichtbar
    form.FormBorderStyle = "None"FixedDialog"

     


    Events - Form

    MaximizeBox$form.Add_*
      param($sender, $e)
    ,
    • $sender → die Form selbst

    • $e → EventArgs


    Load

    Wird beim Initialisieren der Form ausgelöst

    $form.Add_Load({
        Write-Host "Form lädt"
    })
    

    Shown

    Wird nach dem Anzeigen ausgelöst

    $form.Add_Shown({
        Write-Host "Form sichtbar"
    })
    

    FormClosing

    Vor dem Schließen (kann verhindert werden)

    $form.Add_FormClosing({
        param($sender, $e)
    
        $e.Cancel = $true  # verhindert Schließen
    })
    

    FormClosed

    Nach dem Schließen

    $form.Add_FormClosed({
        Write-Host "Form geschlossen"
    })
    

    Resize

    Bei Größenänderung

    $form.Add_Resize({
        Write-Host "Neue Größe: $($this.Size)"
    })
    

    Tipps & Tricks - Form


    Typische Stolperfallen

    • Form schließt sofort
      → kein ShowIconShowDialog()

  4. Layout bricht auseinander
    Dock / Anchor falsch gesetzt

  5. Größe ignoriert
    AutoSize aktiv

  6. Fenster reagiert nicht auf Keys
    KeyPreview = $true

  7. fehlt


    Mentales Modell

    Die SizeForm

    Dock
    Dock

    Sie =bestimmt:

    "Fill"
    AutoSize
    Docksichtbar =ist

    "Top" /
  8. "Bottom"
  9. Width
    Dock
  10. =

    wie "Left"alles /organisiert "Right"

  11. Heigth

    Wann sinnvoll?

    • Immer (jede WinForms-App braucht mindestens eine Form)


    Wann problematisch?

    • Zu viel Logik direkt in der Form

    • Vermischung von UI und Business-Logik