2012-10-12 4 views
0
private void LoadKeys(Dictionary<string,List<string>> dictionary, string FileName) 
     { 
      string line = System.String.Empty; 
      using (StreamReader sr = new StreamReader(keywords)) 
      { 
      while ((line = sr.ReadLine()) != null) 
      { 
       string[] tokens = line.Split(','); 
       dictionary.Add(tokens[0], tokens.Skip(1).ToList()); 
       richTextBox2.AppendText("Url: " + tokens[0] + " --- " + "Localy KeyWord: " + tokens[1]+Environment.NewLine); 
       ColorText(richTextBox2, Color.Red); 
      } 
      } 
     } 

Et la fonction colorText:Comment colorer une partie spécifique du texte dans un encadré richTextBox?

public void ColorText(RichTextBox box, Color color) 
     { 
      box.SelectionStart = box.TextLength; box.SelectionLength = 0; 
      box.SelectionColor = color; 
      box.SelectionColor = box.ForeColor; 
     } 

Mais le tir quoi que ce soit la couleur rouge. Rien n'a changé. Je veux pouvoir colorier en rouge pour exmaple seulement les jetons [0] et en vert jetons [1] par exemple.

Comment puis-je le faire?

Répondre

3
public void ColorText(RichTextBox box, Color color) 
     { 
      box.Select(start, 5); 
      box.SelectionColor = color; 
     } 
3

Le code que vous portez à colorText montre aller à la fin du texte, réglage de la longueur de la sélection à 0, le réglage de la couleur rouge, puis revenir à forecolor, donc pas acheiving ..

peut-être que vous devez faire quelque chose comme

 box.Text = "This is a red color"; 
     box.SelectionStart = 10; 
     box.SelectionLength = 3; 
     box.SelectionColor = Color.Red; 
     box.SelectionLength = 0; 
0

box.SelectionStart = box.TextLength; - cette ligne de code peut être interprété comme « commencer à mettre en évidence le texte à partir de la fin du texte de la boîte. » c'est-à-dire, sélectionnez aucun texte car il ne peut y avoir de texte après le dernier texte.

box.SelectionLength = 0; - Plus loin encore, cette ligne peut être interprétée comme "surligner 0 quantité de texte". Vous avez fait en sorte que vous ne sélectionniez aucun texte haha.

Je ne sais pas comment vous voulez déterminer le texte à sélectionner, mais j'utiliser quelque chose comme:

 public void ColorSelectedText(RichTextBox textBox, Int32 startPos, Int32 length, Color color) 
     { 
      textBox.Select(startPos, length); 
      textBox.SelectionColor = color; 
     } 

passe dans votre objet et votre couleur textbox.

Les entiers que vous passez peut être considéré comme si vous mettant en lumière le texte avec le curseur de la souris:

startPos est l'endroit où vous devez cliquer sur votre souris vers le bas, et la « longueur » serait le nombre de caractères entre startPos et où vous relâchez votre souris.

Questions connexes