2014-02-10 15 views
0

我有一個RichTextBox本文apearing: 那些對認識你所賜<路徑I>你的</I>祝福,那些沒有招致的人,以及那些沒有誤入歧途的人。 不管是還是之間的任何內容都應該變成斜體並且標記不應該出現。我如何轉換文本<i>和</i>之間爲斜體,使標籤RichTextBox的C#消失

我用這個代碼:

richTextBox1.Select(richTextBox1.Text.IndexOf("</i>") + 1, richTextBox1.Text.IndexOf("<i>") - richTextBox1.Text.IndexOf("</i>") - 1); 
Font italicFont = new Font("Cambira", 14, FontStyle.Italic); 
richTextBox1.SelectionFont = italicFont; 

但這種代碼是不工作,我該如何解決呢?

+0

做到像[這](http://dotnetfiddle.net/anHjBj) – Sinatr

+0

鏈接是不是爲我工作。 –

回答

1

您最好使用正則表達式替換之前的文本將其放入RichTextBox中。然而,用代碼做,你可以使用這個...

int token = -1; 
    int token2 = -1; 

    richTextBox1.Text = richTextBox1.Text.Replace(" <", "<"); 
    richTextBox1.Text = richTextBox1.Text.Replace("< ", "<"); 
    richTextBox1.Text = richTextBox1.Text.Replace(" >", ">"); 
    richTextBox1.Text = richTextBox1.Text.Replace("> ", ">"); 

    while (richTextBox1.Text.IndexOf("<i>") > -1) 
    { 
     token = richTextBox1.Text.IndexOf("<i>"); 
     token2 = richTextBox1.Text.IndexOf("</i>", token) + 4; 
     string clip = richTextBox1.Text.Substring(token, token2 - token); 

     Font italicFont = new Font("Cambira", 14, FontStyle.Italic); 
     richTextBox1.Select(token, token2 - token); 
     richTextBox1.SelectionFont = italicFont; 
     richTextBox1.SelectedText = " " + clip.Replace("<i>", "").Replace("</i>", "") + " "; 
    } 
+0

謝謝,這段代碼有效,但它改變了它後面的所有文本的字體和大小。如何確保此代碼僅在有< i >標記時運行? 我想:如果 (richTextBox1.Lines.Contains( 「」) {// 上面的代碼放在這裏 } 但是這個if語句不運行.....我該如何解決這個問題? – Zain

相關問題