使用C#突出显示TextBox / Label / RichTextBox中的文本

晚安,

我想知道如何突出显示TextBox,Label(最好)或RichTextBox中包含的文本的一部分。 例如,给定字符串

“这是一个测试。”,

我希望控件显示“这是一个测试 。”。 有什么简单的方法可以做到吗?

非常感谢你。

RichTextBox r = new RichTextBox(); r.Text = "This is a test"; r.Select(r.Text.IndexOf("test"), "test".Length); r.SelectionFont = new Font(r.Font, FontStyle.Italic); r.SelectionStart = r.Text.Length; r.SelectionLength = 0; 

这样的效果将起作用并删除选择。

编辑在您自己的方法中封装应该相对容易。 你甚至可以进行扩展:

 public static class Extensions { public static void StyleText(this RichTextBox me, string text, FontStyle style) { int curPos = me.SelectionStart; int selectLen = me.SelectionLength; int len = text.Length; int i = me.Text.IndexOf(text); while (i >= 0) { me.Select(i, len); me.SelectionFont = new Font(me.SelectionFont, style); i = me.Text.IndexOf(text, i + len); } me.SelectionStart = curPos; me.SelectionLength = selectLen; } } 

然后使用它像:

 richTextBox1.Text = "This is a test"; richTextBox1.StyleText("test", FontStyle.Italic); 

使用RichTextBox它大约是:

 textbox.Text = "This is a test."; textbox.Select(10, 4); textbox.SelectionFont = new Font(textBox.SelectionFont, FontStyle.Italic); 

这在单个标签上是不可能的,但您可以使用两个。

我现在并不完全确定Style是可写的,我想一想。

编辑:已修复。