2009-11-05 6 views
4

Je peux trouver un million d'exemples de faire reg ex pour appliquer la coloration syntaxique à une zone de texte riche. mais ce dont j'ai besoin c'est juste un moyen simple d'ajouter un mot d'une couleur différente.couleur de texte simple dans la zone de texte riche

Quel serait le code pour mettre simplement les mots "Hello World" dans une zone de texte et avoir Bonjour être rouge et Monde être vert?

Ce code ne fonctionne pas.

this.richTextBox1.SelectionColor = Color.Red 
this.richTextBox1.text += "Test" 
+0

Utilisez-vous VB.Net ou C#? – SLaks

+1

Il est marqué vb.net, et il n'y a pas de point-virgule ... –

+2

... mais alors, le code utilise ceci au lieu de Moi ... confus! –

Répondre

5

Sélectionnez le texte après l'avoir placé, puis changez la couleur.

Par exemple:

richTextBox1.Text += "Test" 
richTextBox1.Select(richTextBox1.TextLength - 4, 4) 
richTextBox1.SelectionColor = Color.Red 
+0

Ce n'est pas la bonne façon d'ajouter un texte à un contrôle de formulaire. Chaque fois que vous réinitialisez le texte entier à l'intérieur d'un contrôle qui peut être très lent lorsque le contenu devient de plus en plus gros. Mauvais codage. –

2

Ive a travaillé avec elle dans VB6 et je pense que son même: Vous devez sélectionner le texte, puis appliquez

this.richTextBox1.SelectionColor = Color.Red 

Le texte ajouté apparaît toujours dans la couleur defaut, vous devez le sélectionner, puis changer sa couleur:

this.richTextBox1.text="Hello world!" 
this.richTextBox1.selstart=0 
this.richTextBox1.sellength=5 
this.richTextBox1.SelectionColor = Color.Red 

Comme je n'utilise pas vb.net, vous devez vérifier l'orthographe mais je pense que c'est la clé. Le code que j'ai écrit est censé imprimer "Hello" en rouge et "World!" en noir.

7

Ce code ajoute le texte "Hello" en rouge et "World" en vert à la zone RichTextBox.

RichTextBox1.SelectionColor = Color.Red 
RichTextBox1.SelectedText = "Hello " 
RichTextBox1.SelectionColor = Color.Green 
RichTextBox1.SelectedText = "World" 
+0

Pourquoi étais-je downvoted ... J'ai testé mon code et ça marche. –

+0

Votre réponse est beaucoup plus simple que n'importe laquelle des réponses, et ça marche pour moi! Merci Meta-Chevalier. – Curt

0

Le code ne fonctionne pas:

this.richTextBox1.SelectionColor = Color.Red 
this.richTextBox1.text += "Test" 

Modifier la deuxième ligne à ceci:

this.richTextBox1.SelectionColor = Color.Red 
this.richTextBox1.selectedtext = "Test" 
0

Essayez cette

Sub colorWord(ByVal word As String, ByVal color As Color) ' by im4dbr0 
     For i As Integer = 0 To RichTextBox1.TextLength 
      Try 
       If RichTextBox1.Text.ElementAt(i).ToString = word.ElementAt(0).ToString Then 
        Dim found As Boolean = False 
        For j As Integer = 1 To word.Count - 1 
         If RichTextBox1.Text.ElementAt(i + j) = word.ElementAt(j) Then 
          found = True 
         Else 
          found = False 
          Exit For 
         End If 
        Next 
        If found = True Then 
         RichTextBox1.Select(i, word.Length) 
         RichTextBox1.SelectionColor = color 
        End If 
       End If 
      Catch ex As Exception 
       Continue For 
      End Try 
     Next 

Pour plusieurs mots utilisent boucle

Dim Words As New List(Of String) 
     Words.Add("Its") 
     Words.Add("That") 
     Words.Add("Simple") 
     For i As Integer = 0 To Words.Count - 1 
      colorWord(Words.Item(i), Color.Red) 
     Next 
1

Essayez cette

RichTextBox2.SelectionLength = 0 
    RichTextBox1.SelectionStart = 0 
    ' We deselect everything first in case the user has something selected. 
    RichTextBox1.SelectionColor = Color.Red 
    RichTextBox1.SelectedText = "Hello " 
    RichTextBox1.SelectionColor = Color.Green 
    RichTextBox1.SelectedText = "World " 

Cela ajoutera au début de la zone de texte. Je pense que vous pourriez aussi faire SelectionStart = RichTextBox1.TextLength qui le mettrait à la fin au lieu du début.

Questions connexes