如何使用 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 内容?的主要内容,如果未能解决你的问题,请参考以下文章