2010-03-22 64 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(); 
    } 
相關問題