Gibt es Bibliotheken, die für die Formatierung des Inhalts einer Textbox (oder richtextbox) basierend auf dem Inhalt sorgen, vorausgesetzt, der Inhalt entspricht einem Muster (im Wesentlichen Syntaxhervorhebung)? Es wäre schön, wenn dies sowohl in der Web-Welt als auch in der Winform möglich wäre, obwohl ich Winform (oder WPF) bevorzugen würde.Textbox-Formatierung
Antwort
Alles, was Sie tun müssen, ist programmgesteuert Text auswählen und dann die SelectionColor-Eigenschaft festlegen. Natürlich müssen Sie die regulären Ausdrücke schreiben, die herausfinden, welcher Text ausgewählt werden soll, aber danach zu färben ist einfach.
Oh ja; Dies funktioniert nicht für eine TextBox, nur eine RichTextBox (offensichtlich).
Sie können dies selbst in einem Rich-Text-Feld tun, indem Sie einfach den Text auswählen und die Farbe festlegen.
Es gibt jedoch aufwändigere Bibliotheken da draußen ...
Zum Beispiel, da Sie WinForms erwähnt, sollten Sie bei SyntaxEditor by ActiPro suchen.
Dies ist ein wenig von dem, was Sie brauchen. Es wählt das erste bis zehnte Zeichen oder auf die volle Länge der RichTextBox dann ändern Sie die Farbe der Auswahl. Der Schlüssel ist, dass wenn Sie die Auswahl treffen, Sie Änderungen an der Auswahl nicht die gesamte RichTextBox vornehmen. Dann können Sie die Schriftart in Fettdruck ändern. Bold ist etwas seltsamer.
'select the first character
rtbRichTextBox.SelectionStart = 0
'Select the length forward as far as you need to
rtbRichTextBox.SelectionLength = 10 'Len(rtbRichTextBox.Text)
' change the text color
rtbRichTextBox.SelectionColor = Color.Blue
' make a highlight color over the text
'rtbRichTextBox.SelectionBackColor = Color.Yellow
Dim newFontStyle As System.Drawing.FontStyle
If rtbRichTextBox.SelectionFont IsNot Nothing Then
newFontStyle = FontStyle.Bold
rtbRichTextBox.SelectionFont = New Font(MyObj_Font_Arial.FontFamily, _
MyObj_Font_Arial.Size, _
newFontStyle)
end if
'a more straight forward bold would be to change the font.
Dim MyObjectArialFont As New Font("Arial", 6.5, FontStyle.Bold)
rtbRichTextBox.SelectionFont = MyObjectArialFont
Mögliche Duplikate: http://stackoverflow.com/questions/1087735/a-textbox-richttextbox-that-has-syntax-highlighting-c –