![](/img/trans.png)
[英]C#: FastColoredTextBox not updating syntax highlighting after modifying editor.Text property
[英]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.