Feedback

C# - Einfaches Text-Highlighting

Veröffentlicht von am 8/5/2010
(2 Bewertungen)
Dieses Beispiel soll lediglich zeigen, wie man mit wenigen Zeilen Code, ein einzelnes Stichwort farblich hervorheben kann. Dies kann auch als Vorlage für etwas komplexeres dienen.

In diesem Beispiel wird in der RichTextBox jedes eingegebene Wort "Snippet" blau gefärbt.


Unterstützte Sprachversionen:
C# ab Version 1.0


[Notiz: CH20100805S0003CS10ME]
/*
[+] #region [Restliche Using-Direktiven]
*/
using System.Drawing;
using System.Windows.Forms;
using System.Text.RegularExpressions;

/*
[+] #region [Restlicher WindowsForms-Code]
*/

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
    Regex exp = new Regex("Snippet");
    int select = richTextBox1.SelectionStart;
    
    foreach (Match m in exp.Matches(richTextBox1.Text))
    {
        richTextBox1.Select(m.Index, m.Value.Length);
        richTextBox1.SelectionColor = Color.Blue;
        richTextBox1.SelectionStart = select;
        richTextBox1.SelectionColor = Color.Black;
    }
}

4 Kommentare zum Snippet

Jan Welker schrieb am 8/5/2010:
Regex, mein Lieblingsspielzeug :-) So ähnlich habe ich auch das Fett und Unterstrichen hier auf dieser Webseite gebaut.
Michel.Eichelberger schrieb am 8/9/2010:
@Jan: Wie hast du denn das Syntax-Highlighting für diese Seite programmiert? Mit JavaScript oder C#? Oder vielleicht mit einer anderen Sprache sogar? :-P
Jan Welker schrieb am 8/9/2010:
Hallo Michel,

ich verwende den Syntax Highlighter von Wilco Bauwer.
http://weblogs.asp.net/scottgu/archive/2006/01/28/436776.aspx

Ich habe nichts gegen JavaScript aber ich finde sowas muss auf dem Server gerendert werden. Leider erzeugt der Highlighter von Wilco Inline-Style, das müsste man mal besser machen.

Leider ist der Downloadlink im Moment tot :(
Jan
Michel.Eichelberger schrieb am 8/10/2010:
@Jan: Ich habe im WebArchiv noch einen Download gefunden. :-)

Ich versuche aus der mehr oder weniger grossen Anzahl aus Code-Zeilen was Einfacheres zu basteln. Und wenn ich den Code sogar ganz verstehen sollte, werde ich gleich auch noch versuchen ihn noch ein bisschen zu erweitern. Aber das kann ich noch nicht versprechen. :-P
 

Logge dich ein, um hier zu kommentieren!