我是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());
}
但是也没有将关键字更改为蓝色或斜体。
知道我丢失或做错了什么吗?
答案 0 :(得分:0)
因此,由于某种原因,FastColoredTextBox的最新版本无法正常工作,在与一位拥有2.7.2.0版本的朋友确认后,我创建了一个新的proyect并添加了v2.7.2.0而不是最新的版本,并且有效! / p>