C# 在C中使用RichTextBox中的HTML标记

C# 在C中使用RichTextBox中的HTML标记,c#,html,winforms,richtextbox,C#,Html,Winforms,Richtextbox,在我的项目中,我想使用richtextbox,它的特点是对齐文本并呈现HTML标记。我检查并尝试了网络上的所有例子。但我没有在我的脑海中找到类似的东西。我很累,但它不支持HTML。我想给它写一些新功能。我试着写一个如下的方法: private void htmlRTB(AdvRichTextBox rtb) { foreach (var line in rtb.Lines) { int boldStart = rtb.Find("<b>");

在我的项目中,我想使用richtextbox,它的特点是对齐文本并呈现HTML标记。我检查并尝试了网络上的所有例子。但我没有在我的脑海中找到类似的东西。我很累,但它不支持HTML。我想给它写一些新功能。我试着写一个如下的方法:

private void htmlRTB(AdvRichTextBox rtb)
{
    foreach (var line in rtb.Lines)
    {
        int boldStart = rtb.Find("<b>");
        int boldEnd = rtb.Find("</b>");
        rtb.Select(boldStart, (boldEnd - boldStart));
        rtb.SelectionFont = new Font("Arial", 9, FontStyle.Bold);
        line.Replace("<b>", "").Replace("</b>", "");

        int italicStart = rtb.Find("<i>");
        int italicEnd = rtb.Find("</i>");
        rtb.Select(italicStart, (italicEnd - italicStart));
        rtb.SelectionFont = new Font("Arial", 9, FontStyle.Italic);
        line.Replace("<i>", "").Replace("</i>", "");
    }
}
但事情搞砸了。第一次使用HTML标记时,它们显示为粗体或斜体。但替换方法不起作用。当HTML标记在第二次或更长时间内被使用时,它们不会显示为粗体或斜体,并且replace方法不起作用。这是屏幕截图:
你能帮我解决这个问题吗?亲切的问候

看起来您只是在替换您拉出的线路中的标签,而不是RTB本身。您需要在RTB文本上运行replace。不应该太难,因为您已经有了标记的int位置,可以直接使用它


此外,for循环不会按您认为的方式工作,因为所有文本都被视为一行。。。这就是为什么它只加粗/突出显示了第一个。当我下班回家时,我会试着给你写一个例子。

也许是订单问题?试着在rtb上代替生产线进行更换?不,请不要订购。我真的很想处理这件事。但是由于我对C语言的了解不够,我不允许管理这个项目。所以我想在这里得到一些帮助。如果你能,我会很高兴的。