我在richtextbox中有这个文本: 你所赐予的人的道路<我>你< / i>祝福,那些没有发生过<我>你< / i>不满,以及那些没有误入歧途的人。 和之间的任何内容都应变为斜体,标签不应出现。
我使用了这段代码:
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 :(得分: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>", "") + " ";
}