簡體   English   中英

C#:FastColoredTextBox不更新語法突出顯示

[英]C#: FastColoredTextBox not updating syntax highlighting

我是C#的新手,必須根據文本的顏色來給文本着色,例如,我的關鍵字必須為藍色,數字為紅色,括號為棕色,方括號為天藍色,那么您就明白了。

我將我的FastColoredTextBox作為ftbT,並將我的方法ftbT_TextChanged:

private void ftbT_TextChanged(object sender, TextChangedEventArgs e)
{
    Regex keywords = new Regex(@"\b((P|p)rincipal|(I|i)ntevalo|(N|n)ivel|(D|d)imensiones|(I|i)nicio_(P|p)ersonaje|(U|u)bicacion_(S|s)alida|(P|p)ared|(E|e)nemigo|(C|c)aminata|(C|c)asilla|(V|v)arias_(C|c)asillas|(P|p)ersonaje|(P|p)aso|(V|v)ariable|(R|r)ango_(C|c)asillas)\b");

    Range range = (sender as FastColoredTextBox).Range;
    e.ChangedRange.ClearStyle();
    e.ChangedRange.SetStyle(BlueStyle, keywords.ToString(), RegexOptions.Multiline);
}

但是,當我運行該應用程序時,它不會將任何已寫入的單詞更改為所選樣式,而且我的樣式也定義如下:

Style BlueStyle = new TextStyle(Brushes.Blue, null, System.Drawing.FontStyle.Italic);

其中“ Brushes.Blue”來自using FastColoredTextBoxNS;

我試圖將方法中的代碼更改為:

private void ftbT_TextChanged(object sender, TextChangedEventArgs e)
{
    Regex keywords = new Regex(@"\b((P|p)rincipal|(I|i)ntevalo|(N|n)ivel|(D|d)imensiones|(I|i)nicio_(P|p)ersonaje|(U|u)bicacion_(S|s)alida|(P|p)ared|(E|e)nemigo|(C|c)aminata|(C|c)asilla|(V|v)arias_(C|c)asillas|(P|p)ersonaje|(P|p)aso|(V|v)ariable|(R|r)ango_(C|c)asillas)\b");

    Range range = (sender as FastColoredTextBox).Range;
    range.ClearStyle(BlueStyle);
    range.SetStyle(BlueStyle, keywords.ToString());
}

但是也不會將關鍵字更改為藍色或斜體。

知道我在想什么或做錯了什么嗎?

因此,由於某種原因,FastColoredTextBox的最新版本無法正常工作,在與一位擁有2.7.2.0版本的朋友核對后,我創建了一個新的proyect並添加了v2.7.2.0而不是最新的版本,並且有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM