在c# winform 中,使用webBrowser 控件时,修改值时弹出提示,解决方案

发布时间:2010年12月09日      浏览次数:956 次
本问题在C# winform 中,使用HTML编辑器或直接使用WebBrowser时,经常遇到这种情况,下面是我亲身经历并总结出来的解决方案,在此发布出来与大家分享一下,呵呵。。。
----------------------------------------
问题:
----------------------------------------
在c# winform 中 使用 webBrowser 控件,修改webBrowser.DocumentText 的值后出现下面的提示
该文档已被修改,是否保存修改结果?
是:保存修改结果
否:放弃修改结果
取消:仍打开该文档
(此行为3个按纽:) 是 否 取消
请问怎么才能不让这个提示显示。
问题示例代码:
在窗体中添加 一个webBrowser 一个按钮
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.DocumentText = string.Empty;
webBrowser1.Document.ExecCommand("EditMode", false, null);
webBrowser1.Document.ExecCommand("LiveResize", false, null);
}
private void button2_Click(object sender, EventArgs e)
{
this.webBrowser1.DocumentText = "测试程序";
}
第一次单击按钮时没有提示,webBrowser1 写入“测试程序”
第二次单击时就出现上面的提示
应该是第二次单击时webBrowser1中已经有内容的原因。
各位帮忙看看怎么解决。
----------------------------------------
解决方法:
----------------------------------------
//在浏览器完成操作时,使AllowNavigation = false
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
this.webBrowser1.AllowNavigation = false;
}
在设置WebBrowser.DocumentText 的值的前面加下以下两行代码
//这两行是屏蔽改变WebBrowser值时,弹出的如上面所说的那个对话框
webBrowser1.AllowNavigation = true;
webBrowser1.Document.OpenNew(true);
如:
/// <summary>
/// 获取和设置当前的Html文本
/// </summary>
public override string Text
{
get
{
return webBrowserBody.DocumentText;
}
set
{
webBrowser1.AllowNavigation = true;
webBrowser1.Document.OpenNew(true); //这两行屏蔽弹出的对话框
webBrowser1.DocumentText = value; //赋值
}
}
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!