Label
Ein Label ist ein Steuerelement zur Anzeige von Text und optionalen Bildern.
Im Gegensatz zu interaktiven Controls wie Button oder TextBox dient ein Label hauptsächlich dazu, Informationen, Beschriftungen oder Hinweise innerhalb einer Benutzeroberfläche darzustellen.
Ein Label kann jedoch auch auf Mausereignisse reagieren und beispielsweise über das Click-Event als anklickbares Element verwendet werden.
Grundlagen
Ein Label wird hauptsächlich verwendet, um Informationen innerhalb eines Formulars darzustellen.
Label→ zeigt Informationen oder Beschriftungen anButton→ führt eine Aktion ausTextBox→ ermöglicht Texteingaben
Label erstellen
# Klassisch
$label = New-Object System.Windows.Forms.Label
# .NET-Style
$label = [System.Windows.Forms.Label]::new()
Label hinzufügen
Ein Label wird wie jedes andere Control der Controls-Collection seines Parent-Containers hinzugefügt.
$form.Controls.Add($label)
# oder
$tabPage.Controls.Add($label)
Text festlegen
Der sichtbare Inhalt eines Labels wird über die Eigenschaft Text festgelegt.
$label.Text = "Benutzername:"
Eigenschaften
| Eigenschaft | Beschreibung |
|---|---|
AutoEllipsis |
Zeigt bei nicht vollständig darstellbarem Text automatisch ... an. |
AutoSize |
Passt die Größe des Labels automatisch an dessen Inhalt an. |
BackColor |
Legt die Hintergrundfarbe des Labels fest. |
BorderStyle |
Bestimmt, ob und wie ein Rahmen um das Label dargestellt wird. |
Cursor |
Legt den Mauszeiger fest, wenn sich der Mauszeiger über dem Label befindet. |
Dock |
Dockt das Label an einer Seite seines Parent-Containers an. |
Enabled |
Legt fest, ob das Label aktiviert dargestellt wird und auf Eingaben reagieren kann. |
FlatStyle |
Bestimmt die Darstellungsart des Labels. |
Font |
Legt Schriftart, -größe und -stil fest. |
ForeColor |
Legt die Textfarbe fest. |
Image |
Zeigt ein Bild im Label an. |
ImageAlign |
Bestimmt die Position des Bildes innerhalb des Labels. |
ImageIndex |
Wählt ein Bild anhand seines Indexes aus der ImageList aus. |
ImageKey |
Wählt ein Bild anhand seines Namens aus der ImageList aus. |
ImageList |
Legt die Bildersammlung für das Label fest. |
Location |
Bestimmt die Position des Labels im Parent-Container. |
Margin |
Legt den äußeren Abstand zu benachbarten Controls fest. |
MaximumSize |
Definiert die maximal zulässige Größe. |
MinimumSize |
Definiert die minimal zulässige Größe. |
Name |
Legt den internen Namen des Labels fest. |
Padding |
Legt den Innenabstand zwischen Rand und Inhalt fest. |
Size |
Bestimmt Breite und Höhe des Labels. |
TabIndex |
Legt die Reihenfolge der Tabulator-Navigation fest. |
TabStop |
Legt fest, ob das Label per Tabulator fokussiert werden kann. |
Text |
Bestimmt den sichtbaren Text des Labels. |
TextAlign |
Legt die Position des Textes innerhalb des Labels fest. |
UseCompatibleTextRendering |
Bestimmt, ob für die Textdarstellung die ältere GDI+- oder die neuere GDI-Textdarstellung verwendet wird. |
UseMnemonic |
Aktiviert Tastenkombinationen über & im Text. |
Visible |
Legt fest, ob das Label sichtbar ist. |
AutoEllipsis
AutoEllipsis
Typ = [System.Boolean]
Der Wert von AutoEllipsis legt fest, ob zu langer Text automatisch mit ... gekürzt werden soll, wenn dieser nicht vollständig dargestellt werden kann.
Standardmäßig ist diese Eigenschaft auf False gesetzt.
$label.AutoEllipsis = $true
💡 Hinweis
AutoEllipsisist insbesondere dann sinnvoll, wenn die Größe des Labels begrenzt ist und der vollständige Text nicht angezeigt werden kann.
AutoSize
AutoSize
Typ = [System.Boolean]
Der Wert von AutoSize legt fest, ob sich die Größe des Labels automatisch an dessen Inhalt anpasst.
Beim Label ist AutoSize standardmäßig auf True gesetzt.
Dadurch wird die Größe automatisch anhand des enthaltenen Textes beziehungsweise Bildes bestimmt.
$label.AutoSize = $true
Soll das Label eine feste Größe besitzen, kann AutoSize deaktiviert werden.
$label.AutoSize = $false
$label.Size = "200, 40"
BackColor
BackColor
Typ = [System.Drawing.Color]
Der Wert von BackColor legt die Hintergrundfarbe des Labels fest.
$label.BackColor = "LightBlue"
Standardmäßig übernimmt das Label die Hintergrundfarbe seines Parent-Controls beziehungsweise die von Windows vorgegebene Standardfarbe.
BorderStyle
BorderStyle
Typ = [System.Windows.Forms.BorderStyle]
Der Wert von BorderStyle bestimmt, ob und wie ein Rahmen um das Label dargestellt wird.
Folgende Werte stehen zur Verfügung:
- None → kein Rahmen
- FixedSingle → einfacher Rahmen
- Fixed3D → dreidimensionaler Rahmen
Standardmäßig besitzt diese Eigenschaft den Wert None.
$label.BorderStyle = "FixedSingle"
Cursor
Cursor
Typ = [System.Windows.Forms.Cursor]
Der Wert von Cursor legt fest, welcher Mauszeiger angezeigt wird, wenn sich der Mauszeiger über dem Label befindet.
$label.Cursor = [System.Windows.Forms.Cursors]::Hand
Dies kann beispielsweise verwendet werden, wenn das Label wie ein anklickbarer Link verwendet wird.
Dock
Dock
Typ = [System.Windows.Forms.DockStyle]
Der Wert von Dock legt fest, an welcher Seite seines Parent-Containers das Label angedockt wird.
Standardmäßig besitzt diese Eigenschaft den Wert None.
$label.Dock = "Top"
Alternativ kann das Label mit Fill den gesamten verfügbaren Bereich einnehmen.
$label.Dock = "Fill"
Im Gegensatz zu Anchor übernimmt Dock sowohl die Positionierung als auch die Größenanpassung des Controls.
Enabled
Enabled
Typ = [System.Boolean]
Der Wert von Enabled legt fest, ob das Label aktiviert ist.
Standardmäßig besitzt diese Eigenschaft den Wert True.
Wird Enabled auf False gesetzt, wird das Label deaktiviert dargestellt und reagiert nicht mehr auf Eingaben.
$label.Enabled = $false
💡 Hinweis Bei einem gewöhnlichen Label betrifft
Enabledhauptsächlich die Darstellung. Ein Label ist standardmäßig ohnehin nicht über die Tabulator-Navigation fokussierbar.
FlatStyle
FlatStyle
Typ = [System.Windows.Forms.FlatStyle]
Der Wert von FlatStyle bestimmt die Darstellungsart des Labels.
Folgende Werte stehen zur Verfügung:
- Flat → flache Darstellung
- Popup → flache Darstellung mit Hervorhebung bei Interaktion
- Standard → Standarddarstellung
- System → Darstellung durch Windows
$label.FlatStyle = "Flat"
Font
Font
Typ = [System.Drawing.Font]
Der Wert von Font legt die Schriftart fest, mit der der Text des Labels dargestellt wird.
Änderungen an dieser Eigenschaft beeinflussen Schriftart, Schriftgröße und Schriftstil.
$label.Font = [System.Drawing.Font]::new(
"Segoe UI",
10,
"Bold"
)
ForeColor
ForeColor
Typ = [System.Drawing.Color]
Der Wert von ForeColor legt die Farbe fest, mit der der Text des Labels dargestellt wird.
$label.ForeColor = "White"
Image
Image
Typ = [System.Drawing.Image]
Der Wert von Image legt das Bild fest, das im Label angezeigt werden soll.
$label.Image = [System.Drawing.Image]::FromFile(
"C:\Icons\Info.png"
)
Ist gleichzeitig Text vorhanden, bestimmt TextAlign beziehungsweise ImageAlign, wie die Inhalte innerhalb des Labels positioniert werden.
ImageAlign
ImageAlign
Typ = [System.Drawing.ContentAlignment]
Der Wert von ImageAlign legt fest, an welcher Position das Bild innerhalb des Labels dargestellt wird.
$label.ImageAlign = "MiddleCenter"
ImageIndex
ImageIndex
Typ = [System.Int32]
Der Wert von ImageIndex bestimmt den Index des Bildes innerhalb der zugewiesenen ImageList.
Standardmäßig ist kein Bild ausgewählt.
$label.ImageList = $imageList
$label.ImageIndex = 0
💡 Hinweis
ImageIndexundImageKeydienen demselben Zweck. Es sollte immer nur eine der beiden Eigenschaften verwendet werden.
ImageKey
ImageKey
Typ = [System.String]
Der Wert von ImageKey legt den Namen eines Bildes innerhalb der zugewiesenen ImageList fest.
$label.ImageList = $imageList
$label.ImageKey = "Info"
Im Gegensatz zu ImageIndex erfolgt die Auswahl über den Namen des Bildes.
ImageList
ImageList
Typ = [System.Windows.Forms.ImageList]
Der Wert von ImageList legt die Bildersammlung fest, aus der das Label ein Bild beziehen kann.
Welche Grafik verwendet wird, wird anschließend über ImageIndex oder ImageKey bestimmt.
$label.ImageList = $imageList
$label.ImageIndex = 0
Location
Location
Typ = [System.Drawing.Point]
Der Wert von Location legt die Position des Labels innerhalb seines Parent-Containers fest.
Die Position wird über die X- und Y-Koordinate relativ zum Parent-Control angegeben.
$label.Location = "20, 40"
💡 Hinweis Wird das Label durch einen Layout-Container oder
Dockpositioniert, wirdLocationvom Layoutsystem verwaltet.
Margin
Margin
Typ = [System.Windows.Forms.Padding]
Der Wert von Margin legt den äußeren Abstand des Labels zu benachbarten Controls fest.
Die Eigenschaft wird insbesondere von Layout-Containern wie FlowLayoutPanel oder TableLayoutPanel berücksichtigt.
$label.Margin = [System.Windows.Forms.Padding]::new(10)
MaximumSize
MaximumSize
Typ = [System.Drawing.Size]
Der Wert von MaximumSize legt die maximal zulässige Größe des Labels fest.
Standardmäßig besitzt diese Eigenschaft den Wert (0,0). Dadurch existiert keine Größenbegrenzung.
$label.MaximumSize = "300, 100"
MinimumSize
MinimumSize
Typ = [System.Drawing.Size]
Der Wert von MinimumSize legt die minimal zulässige Größe des Labels fest.
$label.MinimumSize = "100, 25"
Name
Name
Typ = [System.String]
Der Wert von Name legt den internen Namen des Labels fest.
Der Name dient ausschließlich der Identifikation innerhalb des Programms und wird dem Benutzer nicht angezeigt.
$label.Name = "lblUsername"
Padding
Padding
Typ = [System.Windows.Forms.Padding]
Der Wert von Padding legt den Innenabstand zwischen dem Rand des Labels und dessen Inhalt fest.
$label.Padding = [System.Windows.Forms.Padding]::new(8)
Size
Size
Typ = [System.Drawing.Size]
Der Wert von Size legt die Breite und Höhe des Labels fest.
$label.Size = "200, 35"
Ist AutoSize aktiviert, kann die Größe automatisch anhand des Inhalts angepasst werden.
TabIndex
TabIndex
Typ = [System.Int32]
Der Wert von TabIndex legt die Reihenfolge fest, in der das Label den Fokus erhält, wenn der Benutzer die Tabulator-Taste betätigt.
Standardmäßig besitzt ein Label einen TabIndex, obwohl es normalerweise nicht über die Tabulator-Navigation fokussiert werden kann.
$label.TabIndex = 2
💡 Hinweis
TabIndexwird beim Label erst relevant, wennTabStopaufTruegesetzt wird.
TabStop
TabStop
Typ = [System.Boolean]
Der Wert von TabStop legt fest, ob das Label über die Tabulator-Taste den Fokus erhalten kann.
Beim Label ist diese Eigenschaft standardmäßig auf False gesetzt.
$label.TabStop = $true
Dadurch kann das Label Teil der Tabulator-Navigation werden.
💡 Hinweis Ein gewöhnliches Label ist kein interaktives Eingabeelement. Deshalb ist
TabStopstandardmäßig deaktiviert.
Text
Text
Typ = [System.String]
Der Wert von Text legt den sichtbaren Text des Labels fest.
$label.Text = "Benutzername:"
Standardmäßig besitzt diese Eigenschaft den Wert "" (leerer String).
TextAlign
TextAlign
Typ = [System.Drawing.ContentAlignment]
Der Wert von TextAlign legt fest, an welcher Position der Text innerhalb des Labels dargestellt wird.
$label.TextAlign = "MiddleCenter"
Dadurch wird der Text sowohl horizontal als auch vertikal zentriert.
UseCompatibleTextRendering
UseCompatibleTextRendering
Typ = [System.Boolean]
Der Wert von UseCompatibleTextRendering bestimmt, welche Textdarstellung für das Label verwendet wird.
Bei False wird die neuere GDI-basierte Textdarstellung verwendet. Bei True wird die ältere GDI+-basierte Darstellung verwendet.
$label.UseCompatibleTextRendering = $true
Die Eigenschaft ist hauptsächlich für Kompatibilität mit älteren Anwendungen relevant.
💡 Hinweis In den meisten Fällen kann der Standardwert verwendet werden. Die Eigenschaft wird insbesondere dann interessant, wenn Unterschiede bei der Textdarstellung, beispielsweise bei Zeilenumbruch oder Schriftmessung, auftreten.
UseMnemonic
UseMnemonic
Typ = [System.Boolean]
Der Wert von UseMnemonic legt fest, ob das Zeichen & im Text zur Definition eines Tastaturkürzels verwendet wird.
Ist die Eigenschaft aktiviert, wird das Zeichen direkt vor einem Buchstaben als Kennzeichnung für eine Mnemonic-Taste interpretiert.
$label.Text = "&Name:"
$label.UseMnemonic = $true
Das N kann dadurch als Zugriffstaste verwendet werden.
Soll das Zeichen & tatsächlich angezeigt werden, kann es durch && maskiert werden.
$label.Text = "Speichern && Beenden"
Visible
Visible
Typ = [System.Boolean]
Der Wert von Visible legt fest, ob das Label sichtbar ist.
Standardmäßig besitzt diese Eigenschaft den Wert True.
$label.Visible = $false
Wird die Eigenschaft auf False gesetzt, wird das Label ausgeblendet.
Events
Ein Label kann auf verschiedene Ereignisse reagieren. Besonders häufig werden Mausereignisse verwendet, wenn das Label wie ein anklickbares Element eingesetzt wird.
| Event | Beschreibung |
|---|---|
Click |
Das Label wurde angeklickt. |
DoubleClick |
Das Label wurde doppelt angeklickt. |
MouseEnter |
Der Mauszeiger befindet sich über dem Label. |
MouseLeave |
Der Mauszeiger verlässt das Label. |
MouseDown |
Eine Maustaste wurde über dem Label gedrückt. |
MouseUp |
Eine Maustaste wurde über dem Label losgelassen. |
TextChanged |
Der Text des Labels wurde geändert. |
VisibleChanged |
Die Sichtbarkeit des Labels wurde geändert. |
EnabledChanged |
Der Aktivierungszustand des Labels wurde geändert. |
FontChanged |
Die Schriftart des Labels wurde geändert. |
ForeColorChanged |
Die Textfarbe des Labels wurde geändert. |
SizeChanged |
Die Größe des Labels wurde geändert. |
Event hinzufügen
Events werden beim Label mit dem Präfix Add_ hinzugefügt.
$label.Add_Click({
param($sender, $e)
Write-Host "Label wurde geklickt."
})
Event entfernen
Ein zuvor hinzugefügtes Event kann über das entsprechende Remove_-Präfix wieder entfernt werden.
$label.Remove_Click($event)
Tipps
Label automatisch an den Text anpassen
Mit AutoSize kann die Größe automatisch an den Inhalt angepasst werden.
$label.AutoSize = $true
Typische Verwendung
Ein Label wird häufig für folgende Aufgaben verwendet:
- Beschriftungen von Eingabefeldern
- Überschriften
- Statusinformationen
- Hinweise und Hilfetexte
- Anzeigen von Werten
- klickbare Text-Elemente
- Anzeige von Icons oder Bildern
Ein typisches Formular kann beispielsweise so aufgebaut sein:
$label = [System.Windows.Forms.Label]::new()
$label.Text = "Benutzername:"
$label.AutoSize = $true
$label.Location = "20, 20"
$form.Controls.Add($label)
Label als klickbares Element
Obwohl ein Label hauptsächlich zur Darstellung von Informationen dient, kann es auf Mausereignisse reagieren.
Dadurch kann es beispielsweise als einfacher Link oder als Schaltfläche für kleinere Aktionen verwendet werden.
$label.Text = "Über das Programm"
$label.Cursor = [System.Windows.Forms.Cursors]::Hand
$label.Add_Click({
Show-About
})
Für komplexere Aktionen sollte jedoch weiterhin ein Button verwendet werden.
💡 Hinweis Ein
Labelbesitzt zwar einClick-Event, ist aber semantisch kein Button. Bei wichtigen oder häufig verwendeten Aktionen ist einButtondaher die bessere Wahl.
Hinweise
Labeldient hauptsächlich zur Darstellung von Informationen.AutoSizeist beimLabelstandardmäßig aktiviert.TabStopist beimLabelstandardmäßig deaktiviert.TabIndexist vorhanden, wird aber erst relevant, wennTabStopaktiviert wird.- Über
Image,ImageList,ImageIndexundImageKeykönnen Bilder angezeigt werden. - Mit
TextAlignkann der Text innerhalb des Labels positioniert werden. - Über
Clickkann ein Label interaktiv gemacht werden. - Für echte Benutzeraktionen sollte in der Regel ein
Buttonverwendet werden.
Eine kleine Korrektur gegenüber meiner vorherigen Antwort ist dabei wichtig: **`TabIndex` und `TabStop` sind beim `Label` tatsächlich vorhanden, aber `TabStop` steht standardmäßig auf `False`**. Das ist für deine Doku die relevante Information, statt so zu tun, als wäre die bloße Existenz der beiden Properties schon praktisch bedeutungsvoll. WinForms liebt solche geerbten Eigenschaften. :contentReference[oaicite:1]{index=1}