我如何检测WebBrowser控件的内容何时更改(在设计模式下?)>

问题描述 投票:4回答:3

我在设计模式下使用WebBrowser控件。

webBrowser1.DocumentText = "<html><body></body></html>";
doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
doc.designMode = "On";

我有一个要启用或禁用的保存按钮,具体取决于控件的内容是否已更改。

我还需要知道控件的内容何时更改,因为我需要阻止用户离开控件而又不接受确认消息框,指出他们的更改将丢失。

我找不到任何使我知道内容已更改的事件。

我正在设计模式下使用WebBrowser控件。 webBrowser1.DocumentText =“

”; doc = webBrowser1.Document.DomDocument作为IHTMLDocument2; doc ....
c# webbrowser-control
3个回答
3
投票

因为DocumentText是一个简单的字符串,所以没有这样的事件。我将创建一个字符串变量来存储最后保存的文本,并在每个KeyDown / MouseDown / Navigating事件中检查它。


2
投票

QI IMarkupContainer2的文档,然后使用您自己的IHTMLChangeSink实现调用IMarkupContainer2 :: RegisterForDirtyRange。进行更改时,将调用IHTMLChangeSink :: Notify实现。


0
投票

另一种解决方案,如果实现IDocHostUIHandler,则可以使用其方法UpdateUI

© www.soinside.com 2019 - 2024. All rights reserved.