Skip to main content

Label

Ein Label ist ein reines Anzeige-Control für Text.
Es dient zur Beschreibung, Anzeige oder Strukturierung von UI-Inhalten.

Ein Label ist nicht für direkte Benutzerinteraktion vorgesehen, kann jedoch auf Ereignisse wie Mausklicks reagieren.

Label erstellen

# Klassisch
$label = New-Object System.Windows.Forms.Label

# .NET-Style
$label = [System.Windows.Forms.Label]::new()

Eigenschaften - Label

Eigenschaften
  • Property – Standardwert
    Beschreibung oder Erläuterung der Eigenschaft

  • Text""
    Angezeigter Text

  • AutoSize$false
    Passt Größe automatisch an den Inhalt an

  • TextAlignTopLeft
    Ausrichtung des Textes innerhalb des Labels

  • BorderStyleNone
    Rahmen (None, FixedSingle, Fixed3D)

  • DockNone
    Layout innerhalb des Parent-Containers

  • Anchor(Top, Left)
    Alternative Layoutsteuerung

  • Font – Standard
    Schriftart und Größe

ForeColor – Standard
Textfarbe

BackColor – Transparent
Hintergrundfarbe

Padding(0)
Innenabstand

Margin(3)
Außenabstand

UseMnemonic$true
Zugriff über Alt+Key (z.B. &Datei)

geerbt von Control

    Width 100
    Breite des Labels

    Height 23
    Höhe des Labels

    Size (100, 23)
    Größe des Labels (Width, Height kombiniert)

    Location (0, 0)
    Position innerhalb des Parent-Containers

    ForeColor – ControlText
    Textfarbe (abhängig vom Systemdesign)

    BackColor – Transparent
    Hintergrundfarbe (übernimmt Parent-Hintergrund)

    Font – Microsoft Sans Serif, 8.25pt
    Schriftart und -größe (Standard-WinForms-Font)

    Text

    Typ: system.String

    Die Eigenschaft Text legt den angezeigten Inhalt eines Labels fest.

    $label.Text = "Hallo Welt"
    
    # Mehrzeilig
    $label.Text = "Zeile 1`nZeile 2"

    PowerShell macht implizite Konvertierung:

    $Label.Text = 123

    funktioniert, weil es intern zu "123" wird.


    AutoSize

    Typ: System.Boolean

    Die Eigenschaft AutoSize bestimmt, ob sich das Label automatisch an die Größe seines Inhalts anpasst.

    # Automatische Größe
    $label.AutoSize = $true

    Size

    Typ: System.Drawing.Size

    # Feste Größe
    $label.Size = [System.Drawing.Size]::new(200, 30)

    TextAlign

    Typ: System.Drawing.ContentAlignment

    # Text zentrieren
    $label.TextAlign = "MiddleCenter"

    Events - Label

    Events
    • Even 
      Wird ausgelöst, ...

    Interaktion (User Input)
    • Click
      ... wenn das Label mit der Maus angeklickt wird

    • DoubleClick
      ... wenn das Label doppelt angeklickt wird

    • MouseEnter
      ... wenn der Mauszeiger das Label betritt

    • MouseLeave
      ... wenn der Mauszeiger das Label verlässt

    • MouseMove
      ... wenn der Mauszeiger innerhalb des Labels bewegt wird

    • MouseDown
      ... wenn eine Maustaste auf dem Label gedrückt wird

    • MouseUp
      ... wenn eine Maustaste auf dem Label losgelassen wird

    • MouseHover
      ... wenn der Mauszeiger für kurze Zeit auf dem Label verweilt

    Zustand / Inhalt
    • TextChanged
      ... wenn sich der Text des Labels ändert
    • EnabledChanged
      ... wenn sich der Enabled-Status des Labels ändert

    • VisibleChanged
      ... wenn sich die Sichtbarkeit des Labels ändert

    Layout
    • LocationChanged
      ... wenn sich die Position des Labels ändert

    • SizeChanged
      ... wenn sich die Größe des Labels ändert

    Darstellung (Rendering)
    • Paint
      ... wenn das Label neu gezeichnet wird (z. B. bei Aktualisierung oder Überdeckung)
    Aussehen
    • FontChanged
      ... wenn sich die Schriftart des Labels ändert

    • ForeColorChanged
      ... wenn sich die Textfarbe des Labels ändert

    • BackColorChanged
      ... wenn sich die Hintergrundfarbe des Labels ändert

    $label.Add_*
      param($sender, $e)
    • $sender → das Label selbst (= $this)
    • $e → EventArgs (je nach Event unterschiedlich)

    Interaktionen (User Input)

    Click / DoubleClick / MouseDown
    # Click
    $label.Add_Click({
        param($sender, $e)
    
        Write-Host "Auf das Label wurde geklickt"
    })
    
    # DoubleClick
    $label.Add_DoubleClick({
      param($sender, $e)
    
      Write-Host "Auf das Label wurde doppelt geklickt"
    ])
    
    # MouseDown
    $label.Add_MouseDown({
      param($sender, $e)
    
      Write-Host "Auf das Label wurde entweder mit links oder rechts geklickt"
    })
    MouseEnter / MouseLeave

    Mit MouseEnter und MouseLeave sind Hover-Effekte möglich

    $label.Add_MouseEnter({
        $this.ForeColor = "Red"
    })
    
    $label.Add_MouseLeave({
        $this.ForeColor = "Black"
    })
    MouseMove

    Mausbewegung innerhalb vom Label

    $label.Add_MouseMove({
        param($sender, $e)
    })
    TextChanged

    Wird ausgelöst, wenn sich der Text ändert

    $label.Add_TextChanged({
        param($sender, $e)
    
        Write-Host "Neuer Text: $($sender.Text)"
    })
    
    

    Tipps & Tricks - Label


    Typische Stolperfallen

    • Text wird abgeschnitten
      AutoSize vergessen oder Size zu klein
    • Mehrzeiliger Text funktioniert nicht
      → kein ``n` verwendet oder Größe zu klein
    • Label wirkt "unsichtbar"
      ForeColor = BackColor
    • Klick funktioniert nicht wie erwartet
      → Label ist nicht für Interaktion gedacht

    Mentales Modell

    Ein Label ist UI-Deko mit Bedeutung.

    Es erklärt dem Benutzer, was andere Controls tun oder zeigt Status an.


    Wann sinnvoll?

    • Beschriftung von Eingabefeldern
    • Statusanzeigen
    • Überschriften / Struktur

    Wann vermeiden?

    • Wenn Interaktion erwartet wird → Button nutzen
    • Wenn komplexe Darstellung nötig ist → anderes Control prüfen