我正在研究WebBrowser
控制應用程序,我需要處理選項卡按鍵並防止在html元素之間切換。我無法使用KeyDown
事件,因爲WebBrowser
控件不支持這些事件。所以看來我不得不使用PreviewKeyDown
或類似的東西。任何想法如何編程?手柄Tab鍵按下WebBrowser控件並阻止在Html元素之間切換
回答
可以hanlde KeyDown
事件的WebBrowser.Document.Body
,並檢查下鍵是標籤防止默認動作BU設置e.ReturnValue = false;
,並執行所需的操作。
您可以使用HtmlElementEventArgs
屬性來了解按下的按鍵和修改鍵的狀態。
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.google.com");
//Attach a handler to DocumentCompleted
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//Attach a handler to Body.KeyDown when the document completed
webBrowser1.Document.Body.KeyDown += Body_KeyDown;
}
void Body_KeyDown(object sender, HtmlElementEventArgs e)
{
if(e.KeyPressedCode==(int)Keys.Tab)
MessageBox.Show("Tab Handled");
//Prevent defaut behaviour
e.ReturnValue = false;
}
您還可以限制上面的代碼到一個單一的元素:
webBrowser1.Document.GetElementById("someid").KeyDown += Body_KeyDown;
非常感謝,夥計!很好的答案! –
對不起@RezaAghaei,但是你能幫我解釋一下你給出的答案嗎?只有當布爾值設置爲false時,我需要將Tab輸入轉換爲Ctrl選項卡,你能幫助我嗎?我有這樣的東西:'private void webBrowser1_PreviewKeyDown_1(object sender,PreviewKeyDownEventArgs e) {0121} } }' 而且我只想在Tab鍵設置爲false時,讓Tab像Ctrl + Tab一樣操作,我該怎麼做? –
@DavidAmaral你可以簡單地使用SendKeys.Send(「^({TAB})」);'發送一個Ctrl + Tab。 –
- 1. 阻止在WebBrowser控件上用Tab鍵切換元素
- 2. 如何阻止HTML元素在拖動元素時被按下?
- 3. 如何禁止Tab鍵在對話框中的編輯控件和按鈕之間切換焦點?
- 4. 元素'tab鍵按訂單
- 5. HTML元素:我怎樣才能模擬按下'tab'鍵
- 6. 僅在按下Tab按鈕時在兩個文本區之間切換
- 7. TAB鍵現在正在切換文本框之間
- 8. WebBrowser控件 - 獲取元素按類型?
- 9. 在單擊的元素之間切換
- 10. HTML/JQuery的Tab鍵切換WordPress的
- 11. 切換HTML元素
- 12. 在viewcontroller和Tab bar控制器之間切換
- 13. 點擊HTML元素(按類)使用WebBrowser控件C#
- 14. 如何在.NET WebBrowser控件中阻止下載?
- 15. 用箭頭鍵在元素列表和慢跑元素之間切換?
- 16. 如何在按Tab鍵時通過HTML元素進行旋轉?
- 17. 如何阻止HTML助手編碼HTML元素的值屬性?
- 18. html元素按鍵
- 19. viewControllers之間切換手動
- 20. 在WPF控件之間切換
- 21. WxPython在使用標籤按鈕的控件之間切換
- 22. 計算器按鍵手柄
- 23. 在MFC屬性頁上的WebBrowser控件 - 需要處理TAB按鍵
- 24. 使用Tab切換編輯控件?
- 25. WebBrowser控件 - 防止右鍵單擊
- 26. 按類名切換元素
- 27. 在VB中從WebBrowser控件獲取HTML元素
- 28. WebBrowser控件阻塞AJAX
- 29. jQuery內容面板切換器阻止訪問表單元素
- 30. AngularJS:如何默認顯示元素,並在按下按鈕時切換它
@RezaAghaei要取消Tab元素切換(當你按下Tab鍵,你的文本之間的頁面切換)。我知道有些方法可以做這種類型的東西,但我正在使用一個只有Flash遊戲的頁面,並且由於某種原因,它會在不存在的元素之間切換。通過使用Ctrl + Tab,我總是可以使用我想要的Flash遊戲的功能。對困惑感到抱歉。我真的很想在這個問題上做出我所說的......並且對我的英語感到抱歉,我會說葡萄牙語。 –