0

我们偶然发现了通常的周五下午错误......

我们有一个使用 WebBrowser 控件的 .NET 2.0 WinForms 应用程序(部署在 XP 平板电脑版上,带有最新的 IE 7)。在页面的某个时刻,我们隐藏了 a并使用一些 JavaScriptdiv设置了一个值。textbox此时,操作正在运行(文本出现在 中textbox),但整个窗口现在被冻结。最小化/最大化窗口没有响应,等等:似乎不再处理 Windows 消息。

如果我单击此窗口之外的任何位置(任务栏、另一个打开的窗口),则先前冻结的窗口现在可以正常工作。我重做相同的操作,再次发生锁定。这是系统的,可以随时在这台特定的机器上复制。

我们无法使用各种机器在内部复制它。

在同一台机器上,如果我导航到同一页面并直接使用 IE 7 执行相同的操作,一切正常……非常令人沮丧。

关于什么可能导致这种行为的任何想法?检查什么?显然页面没有抛出 JavaScript 错误。

感谢您的任何想法或指示

4

1 回答 1

1

用于 Windows 窗体的 .NET 2.0 WebBrowser 有问题;我们在实现中遇到了很多不同的错误,包括一些导致 AccessViolationExceptions 崩溃的互操作错误,我们现在正在远离嵌入式 IE 并使用 Mozilla。

我讨厌成为一个悲观主义者,但可嵌入的 IE 控件只是垃圾。

您可能想查看Mono.WebBrowser控件。相同的托管编程接口,但使用 Firefox 的 Gecko 引擎和 Chrome 和 Safari 的 WebKit 引擎的替代实现。

另一种选择是跳过 .NET 2.0 WebBrowser 包装器并通过 mshtml 接口直接使用 ActiveX IE 控件。不幸的是,生成的 mshtml 包装器中甚至存在一些错误。

底线:我推荐Mono.WebBrowser

于 2009-04-24T19:49:52.590 回答