How can I convert text in between <i> and </i> to italics and make the tags disappear in richtextbox C#

StackOverflow https://stackoverflow.com/questions/21680306

Question

I have this text apearing in a richtextbox: The path of those on whom Thou hast bestowed < i >Thy< /i > blessings, those who have not incurred < i >Thy< /i > displeasure, and those who have not gone astray. Whatever is between and should turn into italics and the tags shouldn't appear.

I used this code:

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;

But this code isn't working, how do I fix that?

No correct solution

OTHER TIPS

You'd be better of using Regular Expressions to replace the text before you put it in the RichTextBox. However, to do it with code, you could use this...

    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>", "") + " ";
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top