【问题标题】:Windows form hidden web browser control does not bring the IE window to foregroundWindows 窗体隐藏的 Web 浏览器控件不会将 IE 窗口置于前台
【发布时间】:2015-03-31 06:38:52
【问题描述】:

我为 Outlook 2013 创建了插件。它有一个隐藏的 Web 浏览器控件。单击按钮时,Web 浏览器会在 Internet Explorer 窗口中加载指定的数据。内容正在加载,但 IE 窗口没有出现在前台,我的前景将继续成为焦点。 IE在任务栏一直闪烁。

我希望 IE 窗口位于前台。

【问题讨论】:

  • 你能分享你的代码吗?
  • 您希望 IE 在 Outlook 窗口内还是在浏览器窗口中的 Outlook 外部启动?
  • 嗨 sanjay,想在 Outlook 窗口外启动 IE。
  • webBrowserReporting.Navigate(serviceUrl, "_blank", xmlBytes, "Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1\r\n");

标签: winforms internet-explorer webbrowser-control outlook-addin


【解决方案1】:

如果您想在 Outlook 窗口顶部显示 Windows 窗体,您需要指定父窗口句柄。在您的情况下,它将是资源管理器窗口句柄。要获取句柄,您需要将 Explorer 类的实例强制转换为提供 GetWindow 方法的 IOleWindow 接口。

System.Windows.Form 类的 Show 或 ShowDialog 方法接受代表父窗口句柄的IWin32Window 接口实例。因此,您的窗口将显示在父窗口之上。

【讨论】:

  • 嗨,尤金,感谢您的帮助。它曾经工作正常,但突然我遇到了这个问题。现在它每次都发生。除了使用 IOleWindow 之外,您能否提出其他建议。
  • 问题处于调试模式。它工作正常。由隐藏的 Web 浏览器控件启动的 Internet Explorer 在前台打开。但是当我在 system.then 上安装插件时,单击 Internet Explorer Windows 在后台打开,Outlook 保持在顶部。但我想要 ie 窗口在前面。
  • 尝试最小化 Outlook 窗口。有关详细信息,请参阅 WindowState 属性。
  • 我已经实现了这个。但是当用户关闭 Internet Explorer 但现在我的前景最小化时,我希望前景处于首位。我在很多论坛上阅读,其中问题是隐藏的网络浏览器窃取焦点。但在我的情况下,它并没有把重点放在由隐藏的网络浏览器打开的 IE 上。我在这里做错了吗?或者它正在关注隐藏的控制,这就是为什么 IE 没有出现在 Outlook 中。而且 documentComplete 事件也没有触发。我很困惑...... :( :(
【解决方案2】:

“想在outlook窗口外启动IE。-”

在这种情况下使用 - https://msdn.microsoft.com/en-us/library/System.Diagnostics.Process.Start(v=vs.110).aspx

Process.Start("http://URL");

这将启动默认浏览器并导航到指定的 URL。

【讨论】:

  • 但是随着打开浏览器。我需要做一个 HTTP 帖子。所以我正在使用网络浏览器控件。
猜你喜欢
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
相关资源
最近更新 更多