2016-11-19 1 views
0

Je cet extrait de code:texte RichTextBox couleur une ligne spécifique

if (newLocation.MonsterLivingHere != null) 
{ 
    rtbMessages.Text += "You see a " + newLocation.MonsterLivingHere.Name + Environment.NewLine; 
} 

et je veux que le « Vous voyez un (nom de monstre) » être rouge.

J'ai plusieurs endroits où je veux qu'une seule ligne soit rouge, mais j'ai beaucoup d'autre texte dans la boîte que je ne veux pas être rouge. Par exemple, ce morceau de code doit être rouge ainsi:

if(_player.CurrentHitPoints <= 0) 
{ 
    //Display a dead message 
    rtbMessages.Text = " " + Environment.NewLine; 
    rtbMessages.Text += "The " + _currentMonster.Name + " killed you." + Environment.NewLine; 
    //Moves the player to "Home" 
    MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); 
} 

Comment puis-je faire seulement une partie du texte en rouge?

+0

Je ne vois pas comment cela est un double de cette question 'http://stackoverflow.com/questions/39085397/highlighting-a-line-in-a-richtextbox1-line-number-a- variable »puisque la question est différente. Si je me trompe, essayez d'expliquer la réponse autrement parce que je ne comprends pas la réponse donnée à http://stackoverflow.com/questions/39085397/highlighting-a-line-in-a-richtextbox1-line- number-a-variable' – TheGejr

Répondre

0

Définissez la couleur de sélection, puis l'insertion suivante sera dans cette couleur, par ex.

Color current = rtbMessages.SelectionColor; 

rtbMessages.SelectionColor = Color.Red; 
rtbMessages.AppendText("I am red" + Environment.NewLine); 

rtbMessages.SelectionColor = Color.Blue; 
rtbMessages.AppendText("I am blue" + Environment.NewLine); 

rtbMessages.SelectionColor = current; 
rtbMessages.AppendText("I am whatever colour was set before red"); 
+0

Je l'ai écrit maintenant, mais ni 'SelectionColor' ni 'AppendText' ne sont de couleur bleue, est-ce qu'il me manque une classe ou une réfrence? Et le texte ne change pas les couleurs – TheGejr