gpt4 book ai didi

c# - 在 C# 的 RichTextBox 中使用 HTML 标签

转载 作者:行者123 更新时间:2023-11-28 02:02:09 25 4
gpt4 key购买 nike

在我的项目中,我想使用一个 richtextbox,它具有对齐文本对齐和渲染 HTML 标签的功能。我检查并尝试了网络上的所有示例。但是我没有在我的脑海中找到喜欢的东西。我累了AdvRichTextBox但它不支持 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 标签被第二次或更多次使用时,它们不会显示为粗体或斜体,并且替换方法不起作用。这是屏幕截图图像: enter image description here请你能帮我解决这个问题吗?亲切的问候。

最佳答案

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

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

关于c# - 在 C# 的 RichTextBox 中使用 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com