晚安文本框/标签/ RichTextBox的,突出显示文本使用C#
我想知道我怎么能突出包含在一个文本框,标签(最好)或RichTextBox的文本的一部分。例如,给定字符串
“这是一个考验。”
我想控制,以显示“这是一个测试”。有什么简单的方法可以做到吗?
非常感谢。
晚安文本框/标签/ RichTextBox的,突出显示文本使用C#
我想知道我怎么能突出包含在一个文本框,标签(最好)或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现在是可写的,现在我想到了它。
编辑:固定。