我有一个WPF,我正在实现一个WebBrowser控件,我有一个对象列表,当我选择它们时,它会更改webBrowser控件的url绑定,一切都很好。
但是,如果我所在的网页试图关闭网页,会弹出一个对话框,您可以按“是”或“否”关闭“窗口”(WebBrowser控件)
如果用户点击“是”,则当您尝试在列表中选择其他内容时,Web浏览器控件将关闭并引发异常,因为该窗口不再存在。
webbrowser控件没有关闭暴露的方法我可以到达它并且我能够覆盖“Window.Close()”方法,但这也阻止我关闭主应用程序窗口。
我尝试从WebBrowser类继承,但它是密封的,所以我不能继承添加事件处理程序或覆盖方法,如“Close()”或事件,如“OnClosing()”
我无法控制网站,因为它是第三方产品。
此外,WebBrowser控件在退出时不会取消导航。
所以我的问题是
一个。是否可以拦截对话框并始终回答“否”?
或
B中。有没有其他方法可以防止WebBrowser控件关闭,即使该人对对话框说“是”?
答案 0 :(得分:1)
所以,我最终把控件放在它的单独视图中,然后构建和销毁视图作为对话
答案 1 :(得分:0)
一旦我不得不解决类似的情况。它是一个Delphi应用程序,带有嵌入式TWebBrowser组件,它与.NET的WebBrowser基本相同。该软件自动点击了网页的元素,并且在点击后弹出确认对话框时出现这种情况。自动按下OK按钮的最简单方法是使用确认对话框的参数调用FindWindow,然后使用窗口句柄通过调用SendInput向其发送Enter键。我认为在您的情况下需要按Escape键。