选项卡上的WebBrowser控件使主窗口无效

我有一个Visual Studio 2008 .NET 2.0 WinForms应用程序,它在其主要TabControl的一个TabPages上包含一个WebBrowser控件。此WebBrowser仅用于显示随应用程序一起分发的PDF文件,除该WebBrowser控件本身外,该选项卡上没有其他控件。 问题:在程序启动时,应用程序的主窗口未设置为活动状态。在激活之前,必须通过[Alt-Tab]单击或选择它。 我已经将它跟踪到这两行,从FormMain_Load()开始。我已经形成了一个完全限定的路径,我想要显示的PDF文件,并调用File.Exists()来确保它真的存在(它是):
Uri uri1 = new Uri("path\to\filename.pdf");
webBrowser1.Url = uri1;
如果我注释掉上面的第二行,当然它不会将PDF文件加载到WebBrowser控件中,但程序可以正常启动 - 它的主窗口是活动的(标题栏获取“活动窗口”颜色)并且文本光标在第一个选项卡的第一个字段中闪烁,我在FormMain_Shown()中使用TextBox.Select()放置它。 如果我在第二行添加回来,PDF文件会正确加载 - 但在启动时,程序的主窗口处于非活动状态(标题栏获取“非活动窗口”颜色)。这不是焦点问题,但可能与z顺序有关。没有其他窗口遮挡主窗口,因为我刚从桌面图标启动程序,屏幕底部的任何按钮都没有显示任何窗口处于活动状态。它正常启动,未最小化或最大化。 顺便说一下,WebBrowser控件所在的TabPage不是第一个选项卡。我只知道它正确加载PDF文件,因为这些行不会抛出异常,当我点击该选项卡时,PDF文件显示正常。另外FWIW我有最新的IE更新和Adobe Reader X版本。 我认为这可能是我的开发机器(带有一些IDE插件的Windows 7 64位Ultimate)的奇怪之处,但运行标准32位XP的客户也在报告它。另外我在7和Vista中的XP虚拟机也表现出同样的东西。一旦我禁用加载URL,程序就会按预期启动为活动窗口。     
已邀请:
不幸的是,我从来没有找到(非解决方法)解决方案来解决我过去遇到的完全相同的问题。有一种方法可以防止IE7通过ActiveX窃取焦点(所以我读过),但我从来没有追求它。 我最终做的是将.pdf加载到TabControl的OnSelectedIndexChanged事件中的WebBrowser控件中,以便在用户实际进入WebBrowser控件所在的选项卡之前,焦点不会被盗。 我知道这不是最好的,但这就是我的全部。 这些看起来很有希望: 防止WebBrowser控件窃取焦点? http://www.pcreview.co.uk/forums/hidden-webbrowser-stealing-focus-t2616720.html     

要回复问题请先登录注册