2013-05-07 64 views
1

我想在vb.net的richtextbox中隱藏部分文本。 即在vb.net的Richtextbox中隱藏部分文本

Richtextbox1.text ="Test1 test2 test3" 

現在我想隱藏RichTextBox的文本「測試2」,它應該顯示在RichTextBox控件上唯一的「Test1的TEST3」文本。

所以,任何人都幫助我,告訴我該怎麼做?

在此先感謝。

+0

是它,你可以調用替換()反對簡單地從字符串中刪除一個靜態值?如果沒有,請提供更多關於價值的細節以及您打算如何在實際問題中找到它。 – 2013-05-07 14:10:28

+0

是的,它是靜態值,我們只知道替換該值。 – 2013-05-07 14:22:30

回答

0

RichTextBox控件不支持可見RTF代碼,所以這會工作:

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

注意,顯示的信息仍然顯示「測試2」。

根據您的評論,在這裏是通過迭代向後躲字的所有實例的方法:

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}"; 
    } 
} 
+0

,工作正常。但是如果rtf的值就像richTextBox1.text =「[test2] [test1] [test2]」。現在我想隱藏[test2]然後怎麼可能。 – 2013-05-08 07:11:06

+0

@BrijeshPatel更新後。 – LarsTech 2013-05-08 14:00:44

0

「是的,它是靜態值」

這似乎是一個簡單的答案...

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

*假設靜態值不是另一個字符串的一部分。