我目前正在开发一个项目,我将WebBrowser控件用作编辑器。我打开了设计模式,它似乎正在工作。我遇到的问题是,当我尝试保存文档并加载另一个文件时,会弹出“此文档已被修改”。信息。我想做的就是这个简单
if (frontPage)
{
frontPage = false;
frontContent = webEditor.DocumentText;
webEditor.DocumentText = backContent;
}
else
{
frontPage = true;
backContent = webEditor.DocumentText;
webEditor.DocumentText = frontContent;
}
就像我说每次输入一些文本并运行此代码时,它会弹出一条消息,说明它已被修改并询问我是否要保存。我怎么能绕过这个?
答案 0 :(得分:2)
您应该创建以下功能:
void ChangeAllowWebBrowserDrop() { webBrowser.AllowWebBrowserDrop = !webBrowser.AllowWebBrowserDrop; }
每次更改DocumentText之前都应该调用它。
答案 1 :(得分:1)
你可以设置
BodyHtml.
像这样:
string newHTMLString="some html";
webBrowser1.Document.Body.InnerHtml = newHTMLString;
为我工作。
答案 2 :(得分:1)
您应该创建以下功能:
void ChangeAllowWebBrowserDrop() {
webBrowser.AllowWebBrowserDrop = !webBrowser.AllowWebBrowserDrop;
}
每次更改DocumentText
之前都应该调用它。
答案 3 :(得分:0)
试试这个webEditor.ScriptErrorsSuppressed = true;
确保已在IE中禁用了“脚本调试”,以防您将其打开。
答案 4 :(得分:0)
Windows窗体加载文档流(由DocumentText属性使用)的方式是导航到about:blank,它触发文档修改的消息,然后在其DocumentComplete事件处理程序中加载流。
由于您已有文档,因此可以跳过导航并直接通过其IPersistStreamInit接口将流加载到现有文档中,就像Windows Forms在其DocumentComplete事件处理程序中所做的那样。
答案 5 :(得分:0)
更好的解决方案是在实际分配html代码之前写入空字符串:
WebBrowser1.Document.Write(的String.Empty);
WebBrowser1.DocumentText =“您的代码”;
答案 6 :(得分:0)
我已经解决了这个问题:
browser.Document.Write(string.Empty);
browser.DocumentText="Your html code";