2009-07-22 20 views
0

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

+0

Mögliche Duplikate: http://stackoverflow.com/questions/1087735/a-textbox-richttextbox-that-has-syntax-highlighting-c –

Antwort

1

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

1

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.

1

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