我用 C# 为 Internet Explorer 开发了一个工具栏,用于从外部应用程序发送和接收 URL。它在 IE6 中运行良好,但我想利用新版本 (IE7) 中的选项卡式浏览,但我遇到了麻烦。在 IE7 中,每个选项卡都算作一个单独的实例,因此也是我工具栏的一个单独实例。
在我的一生中,我找不到让单个实例出现在单个 IE 窗口中的每个选项卡上的方法。我所能想到的就是注册为 ROT 的 com 对象,并让每个实例进行通信并镜像所有其他实例,但这似乎不必要地复杂。有没有人找到解决方法?
最佳答案
因为您没有详细说明您的工具栏在做什么,我假设当您打开多个选项卡时,它会占用一些资源……内存、网络、远程源上的连接等。
与其确保只有一个实例在运行,我的建议是通过监听 WindowStateChanged 事件来跟踪哪个选项卡处于事件状态,然后您可以做多种事情:
- 在通讯不活跃时关闭它。
- 通知远程源该选项卡未激活。
- 只是不在非事件标签中显示通知。
- 停止您在工具栏中运行的所有线程。
- 等等
关于c# - IE7 中的多个选项卡与工具栏的一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/983129/