2016-08-22 1 views
0

J'ai une variable, disons il = 5, et ensuite j'aimerais que le numéro de ligne 5 soit mis en surbrillance "bleu" dans mon RichTextBox1. est-ce possible?Mettre en surbrillance une ligne dans un RichTextBox1, numéro de ligne = une variable

Ou devrais-je utiliser quelque chose comme un ListBox, etc. DataGridView

enter image description here

+1

Est-ce WPF ou Windows Forms ou Windows Universal? –

+0

si c'est winforms oui c'est possible. pouvez-vous nous montrer ce que vous avez essayé ..? aussi faire une simple recherche google et vous trouverez des tonnes de réponses .. http://stackoverflow.com/questions/14765947/highlight-specific-text-in-richtextbox – MethodMan

+0

oui c'est Windows Forms Application, jusqu'à présent, je n'ai pas essayez vraiment quelque chose. Je suis nouveau à C# –

Répondre

0

Il mettra en évidence le texte dans une ligne donnée dans un RichTextBox si WordWrap est désactivé:

void highLightALine(RichTextBox rtb, int line, Color hiLight) 
{ 
    int i1 = rtb.GetFirstCharIndexFromLine(line); 
    int i2 = rtb.GetFirstCharIndexFromLine(line + 1); 
    if (i2 < 0) i2 = rtb.Text.Length; 

    rtb.SelectionStart = i1; 
    rtb.SelectionLength = i2 - i1; 
    rtb.SelectionBackColor = hiLight; 
} 

Remarque que si WordWrap est vrai, il mettra toujours en surbrillance la ligne mais seulement dans la mesure où elle est visible. Sa continuation sur la ligne suivante ne sera pas modifiée.

Notez également que seulement Text peut être mis en surbrillance. L'espace vide de fin ne peut pas être mis en surbrillance afaik. Here est un exemple d'essayer de dessiner un propriétaire d'une sous-classe RTB ..

+0

ok merci, je vais l'essayer :) –

+0

dois-je remplacer "rtb" avec le nom de mon RichTextBox "richTextBox1"? –

+0

J'ai essayé ce vide highLightALine (RichTextBox richTextBox1, ligne int, couleur hiLight) { richTextBox1.SelectionStart = 5; richTextBox1.SelectionLength = 6; richTextBox1.SelectionBackColor = hiLight; } –