首页 > 解决方案 > C#:FastColoredTextBox 不更新语法突出显示

问题描述

我是 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());
}

但也没有将关键字更改为蓝色或斜体。

知道我错过了什么或做错了什么吗?

标签: c#

解决方案


因此,由于某种原因,FastColoredTextBox 最新版本无法正常工作,在与拥有 2.7.2.0 版本的朋友核实后,我创建了一个新项目并添加了 v2.7.2.0 而不是最新版本,并且成功了!


推荐阅读