C#:FastColoredTextBox不更新语法突出显示

时间:2018-10-20 19:07:30

标签: c#

我是C#的新手,我需要根据文本的颜色来为其着色,例如,我的关键字必须为蓝色,数字为红色,括号为棕色,方括号为天蓝色,那么您就会明白了。< / p>

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

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

知道我丢失或做错了什么吗?

1 个答案:

答案 0 :(得分:0)

因此,由于某种原因,FastColoredTextBox的最新版本无法正常工作,在与一位拥有2.7.2.0版本的朋友确认后,我创建了一个新的proyect并添加了v2.7.2.0而不是最新的版本,并且有效! / p>