如何使用 RichTextBox 显示 html 内容?

Posted

技术标签:

【中文标题】如何使用 RichTextBox 显示 html 内容?【英文标题】:How to show html contents with a RichTextBox? 【发布时间】:2011-02-07 08:26:02 【问题描述】:

我想在我的表单中显示 html 内容。我尝试使用富文本框。

rtBox.Text = body;

但它失败了。

如何在 RichTextBox 中显示 html 内容?我正在使用 VS 2008。

【问题讨论】:

是要显示突出显示的 html,还是从 html 文档中复制呈现的文本? 我想显示我们在浏览器中看到的文本..我不想使用网络浏览器。 【参考方案1】:

如果您有 HTML 内容,则可以使用 WebBrowser 控件 - 否则您必须将 HTML 转换为 RTF 才能在 RichTextBox 中呈现

【讨论】:

【参考方案2】:

使用 隐藏 WebBrowser 控件并使用所需的 html 内容加载它。 然后从 WebBrowser SelectAll()、Copy() 和 Paste() 到 Richtextbox。

WebBrowser wb = new WebBrowser(); wb.Navigate("about:blank");
string url=@"http:\\....";
wb.Navigate(url);
private const int sleepTimeMiliseconds = 200;

while (wb.ReadyState != WebBrowserReadyState.Complete)

Thread.Sleep(sleepTimeMiliseconds);
Application.DoEvents();


wb.Document.ExecCommand("SelectAll", false, null);
wb.Document.ExecCommand("Copy", false, null);
richtextbox.Paste();

【讨论】:

【参考方案3】:

如果你愿意花钱,DevExpress RTF控件可以给HTML。

【讨论】:

【参考方案4】:

如果您希望 HTMl 突出显示 RichTextBox 中的文本,您可以使用 this 之类的内容(Rich TextBox 中的语法突出显示)。 从那里您可以进行自己的突出显示(基于 html 元素)。

这里还有一个example(一个扩展的 RichTextBox 来保存和加载 HTML lite 文件

【讨论】:

【参考方案5】:

RTF 编码不同于 HTML。你不能马上这样做。 Rowland 正确地建议 WebBrowser 控制。

如果没有,那么您需要编写自己的 HTML 到 RTF 转换器或找到类似的东西。

【讨论】:

以上是关于如何使用 RichTextBox 显示 html 内容?的主要内容,如果未能解决你的问题,请参考以下文章

c#如何让richtextbox某一行以红色字体显示

如何将 RichTextBox 文本保存到文本资源文件?

wpf中如何让richtextbox的滚动条显示

C#的richtextbox中,输入文字时,如何使不同的字符串显示不同的颜色?

在C#的RichTextBox中如何使特定文字显示颜色

c# 如何让richtextbox第一行居中显示,在form_load时候,而不是选择第一行再设置