RichTextBox
Namespace: System.Windows.Forms
Properties / Eigenschaften
- Property – Standardwert
Beschreibung oder Erläuterung der Eigenschaft
-
BackColor – SystemColors.Window
Hintergrundfarbe der RichTextBox -
BorderStyle – Fixed3D
Rahmenstil (None,FixedSingle,Fixed3D) -
Font – Standard-Systemfont
Schriftart und -größe -
ForeColor – SystemColors.WindowText
Textfarbe -
HideSelection – $true
Steuert, ob der Text im nicht markierten Zustand verborgen wird -
Text – ""
Der gesamte Text in der RichTextBox -
WordWrap – $true
Zeilenumbruch aktivieren/deaktivieren -
Rtf – ""
Ruft den RTF-Inhalt der RichTextBox ab oder setzt ihn -
Multiline – $true
Zeigt Text auf mehreren Zeilen -
SelectionAlignment – Left
Ausrichtung des Textes in der aktuellen Auswahl (Left,Center,Right) -
SelectionColor – SystemColors.HighlightText
Farbe der ausgewählten Textstellen -
SelectionFont – Standard-Schrift
Schriftart der Auswahl -
SelectionBackColor – SystemColors.Highlight
Hintergrundfarbe der Auswahl -
SelectionLength – 0
Länge der aktuellen Auswahl -
SelectionStart – 0
Der Startindex der aktuellen Auswahl -
TextChanged – $false
Event wird ausgelöst, wenn sich der Text ändert
Die RichTextBox ist eine erweiterte Textbox, die es ermöglicht, formatierte Textinhalte darzustellen und zu bearbeiten. Sie unterstützt RTF (Rich Text Format) sowie einfache Textformate.
Erstellen
# Erstellen
$richTextBox = New-Object System.Windows.Forms.RichTextBox
$richTextBoxNew = [System.Windows.Forms.RichTextBox]::new()
# Größe & Position
$richTextBox.Size = New-Object System.Drawing.Size(400, 200)
$richTextBox.Location = New-Object System.Drawing.Point(10,10)
# Text setzen
$richTextBox.Text = "Hallo, dies ist ein Testtext in der RichTextBox!"
# Formatierter Text (RTF)
$richTextBox.Rtf = "{\rtf1\ansi\ansicpg1252\uc1\pard\lang1031\f0\fs20 Hallo, \b dies ist ein \i Test \b0\i0 Text.\par}"
📥 Werte auslesen
# Einfacher Text
$plainText = $richTextBox.Text
# RTF-Text
$rtfText = $richTextBox.Rtf
# Auswahl
$selectedText = $richTextBox.SelectedText
👉 Unterschied:Text gibt nur den normalen Text zurück, während Rtf den gesamten formatierten Text (inklusive Formatierung) liefert.
Events - RichTextBox
TextChanged
Wird ausgelöst, wenn sich der Text in der RichTextBox ändert.
$richTextBox.Add_TextChanged({
Write-Host "Text hat sich geändert!"
})
SelectionChanged
Wenn der Benutzer die Auswahl ändert, wird dieses Event ausgelöst.
$richTextBox.Add_SelectionChanged({
Write-Host "Neue Auswahl: $($richTextBox.SelectedText)"
})
LinkClicked
Wenn der Benutzer auf einen Link klickt, wird dieses Event ausgelöst.
$richTextBox.Add_LinkClicked({
param($sender, $e)
Write-Host "Link angeklickt: $($e.Link)"
})
Tipps & Tricks
Formatierter Text
$richTextBox.SelectionColor = "Red"
$richTextBox.SelectionFont = New-Object System.Drawing.Font("Arial", 12, [System.Drawing.FontStyle]::Bold)
$richTextBox.AppendText(" Dies ist ein Text mit roter Schrift und fettem Arial.")
RTF-Inhalt speichern
# RTF in Datei speichern
$richTextBox.SaveFile("C:\Pfad\zur\Datei.rtf", [System.Windows.Forms.RichTextBoxStreamType]::RichText)
Hyperlinks hinzufügen
$richTextBox.AppendText("Hier klicken: ")
$richTextBox.InsertLink("https://www.example.com")
⚠️ Typische Stolperfallen
- Text wird nicht formatiert, aber du hast vergessen, den richtigen Stream (RTF vs. Text) zu verwenden.
- Events feuern zu oft: Achte darauf, dass du nicht zu viele Events auslöst. Besonders
TextChangedist gefährlich, weil es oft auch bei jeder kleinen Änderung feuert.
🧩 Best Practice
- Für einfache Textfelder immer die normale
TextBoxverwenden. - Nutze
RichTextBox, wenn du Formatierung und erweiterte Textoptionen brauchst. - RTF ist dein Freund, wenn du komplexe Formatierungen brauchst – ansonsten geht auch normaler Text.