只读富文本框更改关键字 C# 的颜色
Readonly richtextbox changing color of keyword C#
我有一个富文本框,我用它来显示 Hello World 程序的示例,并且想要 'using' 'namespace' 'class' 'static' 等关键字'void' 'string' 显示蓝色。
我已经 'using' 显示蓝色但只有当用户开始输入或输入 'using'
我希望只读 richtextbox 不允许用户输入
这是我的代码:
private void rtb_TextChanged(object sender, EventArgs e)
{
string find = "using";
if (rtb.Text.Contains(find))
{
var matchString = Regex.Escape(find);
foreach (Match match in Regex.Matches(rtb.Text, matchString))
{
rtb.Select(match.Index, find.Length);
rtb.SelectionColor = Color.Blue;
rtb.Select(rtb.TextLength, 0);
rtb.SelectionColor = rtb.ForeColor;
};
}
}
我无法弄清楚如何为只读 rtb 执行此操作。
我如何编辑我的代码以在只读 rtb
中显示初始化时的蓝色文本
感谢您的帮助
无需订阅 TextChanged
活动。
将您的代码放在单独的方法中:
private void ApplySyntaxHighlite()
{
string find = "using";
if (richTextBox1.Text.Contains(find))
{
var matchString = Regex.Escape(find);
foreach (Match match in Regex.Matches(richTextBox1.Text, matchString))
{
richTextBox1.Select(match.Index, find.Length);
richTextBox1.SelectionColor = Color.Blue;
richTextBox1.Select(richTextBox1.TextLength, 0);
richTextBox1.SelectionColor = richTextBox1.ForeColor;
};
}
}
然后在 RichTextBox
中设置文本后调用它:
richTextBox1.Text =
"using System;\r\nusing System.IO;\r\n\r\nConsole.WriteLine(\"Hello world.\");";
ApplySyntaxHighlite();
我有一个富文本框,我用它来显示 Hello World 程序的示例,并且想要 'using' 'namespace' 'class' 'static' 等关键字'void' 'string' 显示蓝色。
我已经 'using' 显示蓝色但只有当用户开始输入或输入 'using' 我希望只读 richtextbox 不允许用户输入
这是我的代码:
private void rtb_TextChanged(object sender, EventArgs e)
{
string find = "using";
if (rtb.Text.Contains(find))
{
var matchString = Regex.Escape(find);
foreach (Match match in Regex.Matches(rtb.Text, matchString))
{
rtb.Select(match.Index, find.Length);
rtb.SelectionColor = Color.Blue;
rtb.Select(rtb.TextLength, 0);
rtb.SelectionColor = rtb.ForeColor;
};
}
}
我无法弄清楚如何为只读 rtb 执行此操作。 我如何编辑我的代码以在只读 rtb
中显示初始化时的蓝色文本感谢您的帮助
无需订阅 TextChanged
活动。
将您的代码放在单独的方法中:
private void ApplySyntaxHighlite()
{
string find = "using";
if (richTextBox1.Text.Contains(find))
{
var matchString = Regex.Escape(find);
foreach (Match match in Regex.Matches(richTextBox1.Text, matchString))
{
richTextBox1.Select(match.Index, find.Length);
richTextBox1.SelectionColor = Color.Blue;
richTextBox1.Select(richTextBox1.TextLength, 0);
richTextBox1.SelectionColor = richTextBox1.ForeColor;
};
}
}
然后在 RichTextBox
中设置文本后调用它:
richTextBox1.Text =
"using System;\r\nusing System.IO;\r\n\r\nConsole.WriteLine(\"Hello world.\");";
ApplySyntaxHighlite();