我有一個WebBrowser並已公開其ActiveX方法。在我的WebBrowser所在的表單中,我有一個帶有快捷鍵的MainMenuStrip。只有在我的表單上輸入文本框時,快捷方式才能正常工作。例如,當我按CTRL + N,我的窗體的一個快捷方式 - 而不是一個新的窗體開放,Web瀏覽器當前打開的頁面在IE中打開。
我已經試過:
我曾嘗試使用計時器沒有工作(這不會是一個可行的選擇,無論如何,因爲它不是非常微妙的,聚焦的形式每隔100ms程序必須使用SendKeys等小心導航WebBrowser)。
代碼web瀏覽器:
this.webBrowser1.WebBrowserShortcutsEnabled = false; this.webBrowser1.AllowWebBrowserDrop = false; this.webBrowser1.IsWebBrowserContextMenuEnabled = false;
從web瀏覽器和壓倒一切的ProcessCmdKey繼承:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Control | Keys.N)) { newToolStripMenuItem.PerformClick(); return true; // or false } }
什麼,我想實現:
那WebB rowser的快捷方式被禁用(我讀過的地方,ActiveX防止這...爲什麼?)。
我想要的是,除非當前正在WebBrowser中鍵入/導航,否則表單的快捷鍵將起作用。重點應該從web瀏覽器採取徘徊無論有控制之外的點擊,而不僅僅是當其他文本框是焦點(例如,當有形式的空白點擊。
你可以通過揭示其ActiveX方法來闡明你的意思嗎? –
@EvanHarper,我會給它一個鏡頭: 私人SHDocVw。WebBrowser_V1 Web_V1; Web_V1 =(SHDocVw.WebBrowser_V1)webBrowser1.ActiveXInstance; 這就是代碼至少。不知道我完全理解它! –
是否代碼實際上確實是會與Web_V1任何引用它的concoted?這是重要的一部分。 –