当地址为“about:blank”时,如何在WebBrowser控件中显示HTML字符串

时间:2016-01-10 18:51:14

标签: c# winforms webbrowser-control

我想在webbrowser控件中编写一个特定的字符串(例如帮助实例),当它导航到“about:blank”时,我可以使用Form_LoadDocumentText中编写我的字符串,它会自动导航到“about:blank”

webBrowser1.DocumentText = "introduction....";

但是现在如果用户刷新webbrowser控件,它会显示一个空白页面。每当地址为“about:blank”时,我希望它再次显示我的字符串。将我的字符串放入web浏览器控件的最佳位置在哪里?

1 个答案:

答案 0 :(得分:1)

文档here只是重新加载当前页面,因此当您调用Refresh方法时,不会发生NavigatingNavigatedDocumentCompleted事件

使用NavigatingNavigated事件,您应该检查浏览器是导航还是导航到about:blank,然后禁用用户可以刷新页面的方式,包括浏览器快捷方式,浏览器上下文菜单或您创建或刷新的任何其他点,如自定义工具栏按钮和上下文菜单。

对于其他网址,请重新启用它们。

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    var state = (e.Url.ToString().ToLower() == "about:blank");
    this.webBrowser1.WebBrowserShortcutsEnabled = !state;
    this.webBrowser1.IsWebBrowserContextMenuEnabled = !state;
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    var content = "Custom Content";
    if (e.Url.ToString().ToLower() == "about:blank" &&
        this.webBrowser1.DocumentText != content)
    {
        this.webBrowser1.DocumentText = content;
    }
}
相关问题