c# - 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());
}
但也没有将关键字更改为蓝色或斜体。
知道我错过了什么或做错了什么吗?
解决方案
因此,由于某种原因,FastColoredTextBox 最新版本无法正常工作,在与拥有 2.7.2.0 版本的朋友核实后,我创建了一个新项目并添加了 v2.7.2.0 而不是最新版本,并且成功了!
推荐阅读
- python - 如何根据前一行合并数据框中的行?
- python - 如何仅替换第二次出现的 re.search() 组
- c# - 如何调整 ListBoxItems 的大小以适合容器?
- java - Spring @Qualifer 不与实现多个接口的 Bean 一起使用
- git - Git - 从分支的历史记录中删除文件
- android - 致命异常 android.view.InflateException:布局/activity_main 中的二进制 XML 文件行 #291:二进制 XML 文件行
- deep-learning - 当我们进行微调任务时,Bert 如何改变最大序列长度?
- c# - Microsoft Entity Framework 不保存更改
- jquery - AngularJS 拆分器示例
- slurm - 排队 SLURM 作业以在 X 分钟后运行