2010-03-22 69 views
4

我正在使用webBrowser.Navigate(url)控件来显示页面。
我注意到这个动作由电流控制(网格)抢断重点和比我有问题集中电网回(累myGrid.Focus,。选择等等)
这是浏览器的真令人讨厌的行为...WebBrowser中的Acrobat Reader ActiveX盗取焦点[C#]

有谁知道如何防止焦点被浏览器窃取或(如果没有)热点强制重点控制回来?

编辑:
我也试着webBrowser.DocumentCompleted事件焦点回到电网

EDIT 2
良好的情况下进行测试,这是开通PDF文件webBrowser.Navigate(@"C:\TEMP\test.pdf") 我相信这是的ActiveX问题。第一眼看上去,这是不是与聚焦控制,但失去整个造型的重点问题......

编辑3
我尝试另一种方法:表按键事件:我想我可以捕捉形式的按键和移动焦点从WebBrowser/Adob​​eReader ActiveX到我的控件。 但令人惊讶的是,事件并未被解雇!看起来读者采取了所有的控制,没有办法做任何事情编程,直到你做鼠标点击(至少)表单的标题

任何意见(S)?

回答

3

正如@nobugz所说 - 似乎我发现使用Adobe Reader ActiveX控件的副作用。

我想我找到了解决方法。不是很优雅 - 但作品给我... :)
这里是我存档如何使用聚焦控制回定时器和浏览器文件完成事件:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { 
     timer1.Interval = 100; 
     timer1.Start(); 
    } 

    private void timer1_Tick(object sender, EventArgs e) { 
     if (this.textBox1.Focused) { 
      timer1.Stop(); 
      return; 
     } 

     this.textBox1.Focus(); 
    } 
相关问题