隐藏vb.net中Richtextbox中的部分文本

时间:2013-05-07 08:15:24

标签: winforms richtextbox selection

我想隐藏vb.net中richtextbox中的部分文本。 即

Richtextbox1.text ="Test1 test2 test3"

现在我想从richtextbox文本隐藏“test2”,它应该只在richtextbox控件上显示“Test1 test3”文本。

所以有人帮助我并告诉我该怎么做?

先谢谢。

2 个答案:

答案 0 :(得分:0)

“是的,它是静态值”

这似乎是一个微不足道的答案......

    RichTextBox1.Text = RichTextBox1.Text.Replace("test2", "")

*假设静态值不是另一个字符串的一部分。

答案 1 :(得分:0)

RichTextBox控件确实支持Visible rtf代码,因此可以使用:

string hideText = "test2 ";
if (richTextBox1.Find(hideText) > -1) {
  richTextBox1.SelectedRtf = @"{\rtf1\ansi\v " + hideText + @"\v0}";    
  MessageBox.Show(richTextBox1.Text);
}

请注意,显示的信息仍会显示“test2”。

根据您的评论,这是一种通过向后迭代隐藏单词的所有实例的方法:

string hideText = "[test2]";
int index = richTextBox1.TextLength;
while (index > -1) {
  index = richTextBox1.Text.LastIndexOf(hideText, index);
  if (index > -1) {
    richTextBox1.Select(index, hideText.Length);
    richTextBox1.SelectedRtf = @"{\rtf1\ansi\v " + hideText + @"\v0}";
  }
}