2009-07-22 9 views
0

Existe-t-il des bibliothèques permettant de formater le contenu d'une zone de texte (ou d'une zone de texte enrichie) en fonction du contenu, en supposant que le contenu est conforme? Ce serait bien si cela était possible à la fois dans le monde du web et dans la forme winform, même si je préfèrerais winform (ou WPF d'ailleurs).Formatage de zone de texte

+0

Copie possible: http://stackoverflow.com/questions/1087735/a-textbox-richtextbox-that-has-syntax-highlighting-c –

Répondre

1

Tout ce que vous devez faire est de sélectionner du texte par programme, puis définir la propriété SelectionColor. Bien sûr, vous aurez besoin d'écrire l'expression (s) régulière (s) qui détermine quel texte sélectionner, mais le colorier par la suite est simple.

Oh oui; cela ne fonctionnera pas pour un TextBox, seulement un RichTextBox (évidemment).

1

Vous pouvez le faire dans une zone de texte riche en sélectionnant simplement le texte et en définissant la couleur.

Cependant, il y a des bibliothèques plus élaborées là ...

Par exemple, puisque vous avez mentionné WinForms, vous voudrez peut-être regarder SyntaxEditor by ActiPro.

1

Ceci est un peu de ce dont vous avez besoin. Il sélectionne le premier au 10ème caractère ou à toute la longueur de la RichTextBox puis change la couleur de la sélection. La clé est qu'une fois que vous faites la sélection, vous faites des changements sur la sélection et non sur l'ensemble de RichTextBox. Ensuite, vous pouvez changer la police en gras. Bold est un peu plus bizarre.

'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