首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将字符串html内容显示到How浏览器控件中?

如何将字符串html内容显示到How浏览器控件中?
EN

Stack Overflow用户
提问于 2011-03-19 22:08:17
回答 8查看 161.9K关注 0票数 67

我有一个c# win应用程序。我用html格式将文本保存在数据库中,但我想在网页浏览器中将其显示给我的user.How,以便将字符串html内容显示到网页浏览器控件中?

提前感谢

EN

回答 8

Stack Overflow用户

发布于 2011-03-19 22:33:03

试试这个:

代码语言:javascript
复制
webBrowser1.DocumentText =
    "<html><body>Please enter your name:<br/>" +
    "<input type='text' name='userName'/><br/>" +
    "<a href='http://www.microsoft.com'>continue</a>" +
    "</body></html>";
票数 113
EN

Stack Overflow用户

发布于 2014-05-19 18:59:59

您可以执行以下操作,而不是导航到空白

代码语言:javascript
复制
webBrowser1.DocumentText="0";
webBrowser1.Document.OpenNew(true);
webBrowser1.Document.Write(theHTML);
webBrowser1.Refresh();

不需要等待事件或其他任何事情。您可以查看OpenNew的MSDN,而我已经在我的一个项目中测试了初始DocumentText赋值,并且它工作正常。

票数 27
EN

Stack Overflow用户

发布于 2013-12-03 20:20:43

正如Thomas W.评论的那样-我几乎错过了这条评论,但我也有同样的问题,所以我认为这是值得重写的答案。

主要问题是,在将webBrowser1.DocumentText第一次赋值给某些html之后,后续赋值不起作用。

托马斯链接的解决方案可以在http://weblogs.asp.net/gunnarpeipman/archive/2009/08/15/displaying-custom-html-in-webbrowser-control.aspx上找到详细信息,但我将在下面总结一下,以防这个页面在未来变得不可用。

简而言之,由于webBrowser控件的工作方式,每次要更改内容时都必须导航到新页。因此,作者提出一种更新控件的方法,如下所示:

代码语言:javascript
复制
private void DisplayHtml(string html)
{
    webBrowser1.Navigate("about:blank");
    if (webBrowser1.Document != null)
    {
        webBrowser1.Document.Write(string.Empty);
    }
    webBrowser1.DocumentText = html;
}

然而,我发现在我当前的应用程序中,我从if(webBrowser1.Document != null)行获得了一个CastException。我不确定为什么会这样,但我发现如果我在try catch中包装整个if代码块,所需的效果仍然有效。请参见:

代码语言:javascript
复制
private void DisplayHtml(string html)
{
    webBrowser1.Navigate("about:blank");
    try
    {
        if (webBrowser1.Document != null)
        {
            webBrowser1.Document.Write(string.Empty);
        }
    }
    catch (CastException e)
    { } // do nothing with this
    webBrowser1.DocumentText = html;
}

因此,每次执行DisplayHtml函数时,我都会收到来自if语句的CastException,因此永远不会到达if语句的内容。但是,如果我注释掉if语句,这样就不会收到CastException,那么浏览器控件就不会更新。我怀疑Document属性背后的代码还有另一个副作用,它导致了这种效果,尽管它也抛出了一个异常。

无论如何,我希望这对人们有帮助。

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5362591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档