如何在C#中为Rich Textbox着色?

3

可能是重复问题:
C#如何设置rich textbox中文本的颜色?

在Visual C#.NET中,我想要在Rich Text Box中输入特定文本时更改其颜色。

例如,我可能想要给单词“hi”着色,因此当用户在Rich Text Box中输入“hi”时,它会更改颜色,并且单词“hi”将与Rich Text Box中的所有其他文本不同颜色。

我该怎么做?有没有更好的方法,在不使用Rich Text Box的情况下实现这个功能?

2个回答

1

在你的TextChanged事件处理程序中

txtRichTextBox.Select(txtRichTextBox.Text.IndexOf("hi"), "hi".Length);
txtRichTextBox.SelectionColor = YourColor;
txtRichTextBox.SelectionFont = new Font("Times New Roman",FontStyle.Bold);

我应该放什么在 "youText" 中?我是不是漏了一个指令或者别的东西? - Alper
请注意--为了使其正常工作,您必须使用AppendText方法。将任何内容分配给框的文本属性将会破坏它。 - Jeff

0

我记得在Flex中做过类似的事情。我们需要扩展richtextbox控件,并创建自定义控件,根据输入内容更改文本颜色。我们使用数据更改事件来实现这一点。但我的直觉猜测是,您将不得不创建一个自定义控件来完成这个任务。


我如何创建一个自定义控件,可以像富文本框一样工作? - Alper
@Jacob - 这是一个很好的富文本框控件示例,它扩展了默认的富文本框控件以便在控件中检测URL高亮显示。这可能是你想要做的最佳选择,因为你可以应用你的需求。http://www.codeproject.com/KB/edit/RichTextBoxLinks.aspx(虽然它是一个较旧版本的C#,但它会让你走上正确的道路) - Kevin Mansel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接