2010-10-26 146 views
2

晚安文本框/标签/ RichTextBox的,突出显示文本使用C#

我想知道我怎么能突出包含在一个文本框,标签(最好)或RichTextBox的文本的一部分。例如,给定字符串

“这是一个考验。”

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

非常感谢。

回答

4
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); 
0

使用一个RichTextBox这将是大约:

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

这是不可能的单个标签上,虽然你可以使用两个。

我不完全确定Style现在是可写的,现在我想到了它。

编辑:固定。