我的C#ActiveX控件是IE 8中的hostet。我想在卸载控件时执行代码。
我尝试了以下内容:
...
public class ActiveXControl : Control
{
protected override void Dispose(bool disposing)
{
if (disposing)
{
// Cleanup
}
}
}
...
但处置总是假的(从终结者调来)。因为我需要访问托管对象,所以我不能使用那个。
如何在浏览器“卸载”控件时调用清理代码?
我找到了IOleObject :: Close方法,它由Control类实现,但是AFAIK却无法覆盖它的行为。
答案 0 :(得分:1)
我还没有这样做,但是作为一个尝试的建议:可能会在网页的html中编写一些javascript,当页面导航时会在你的activeX控件上调用一个方法远离。您可以使用此方法调用清理代码。
答案 1 :(得分:1)
你可以覆盖OnHandleDestroyed(),当IE破坏控制窗口时调用。