Skip to main content

Label

Ein Label ist ein Namespace: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.FormsForms.Label

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

Eigenschaften - Label

Properties / 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

  • FontStandard
    Schriftart und Größe

  • ForeColorStandard
    Textfarbe

  • BackColorTransparent
    Hintergrundfarbe

  • Padding(0)
    Innenabstand

  • Margin(3)
    Außenabstand

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

Text

EinTyp: Labelsystem.String ist ein reines Anzeige-Control für Text.
Es dient zur Beschreibung, Anzeige oder Strukturierung von UI-Inhalten

EinDie Label istEigenschaft passivText. legt den angezeigten Inhalt eines Labels fest.

    Keine Interaktion erforderlich Zeigt Informationen an Wird oft zusammen mit anderen Controls verwendet

    Label erstellen

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

    Text setzen

    $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.


    Layout

    AutoSize

    &

    Typ: VerhaltenSystem.Boolean

    Die BreiteEigenschaft undAutoSize Höhebestimmt, vomob `Label`sich wirddas mitLabel einemautomatisch System.Drawing.Sizean Objektdie definiert.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