我想在webbrowser控件中编写一个特定的字符串(例如帮助实例),当它导航到“about:blank”时,我可以使用Form_Load
在DocumentText
中编写我的字符串,它会自动导航到“about:blank”
webBrowser1.DocumentText = "introduction....";
但是现在如果用户刷新webbrowser控件,它会显示一个空白页面。每当地址为“about:blank”时,我希望它再次显示我的字符串。将我的字符串放入web浏览器控件的最佳位置在哪里?
答案 0 :(得分:1)
文档here只是重新加载当前页面,因此当您调用Refresh方法时,不会发生Navigating
,Navigated
和DocumentCompleted
事件
使用Navigating
或Navigated
事件,您应该检查浏览器是导航还是导航到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;
}
}