如何让WebBrowser获取单击事件2011-06-30 csdn博客 贾涛这个问题来自论坛提问,vs2005的webbrowser控件如何接收鼠标事件,很多事情其实自己动动脑子就有办法的。主要是3步,给dom对象插入js脚本去响应鼠标-〉通过url跳转去通知webbrowser-〉截获跳转事件去c#中处理示例代码:
1.usingSystem;2.usingSystem.Windows.Forms;3.usingmshtml;4.usingSHDocVw;5.namespaceWindowsApplication26.{7. publicpartialclassForm1 : Form8.{9. publicForm1()10.{11.InitializeComponent();12.}13.14. private voidForm1_Load( objectsender, EventArgs e)15.{16. this .webBrowser1.Navigating +=newWebBrowserNavigatingEventHandler(webBrowser1_Navigating);17. this .webBrowser1.Navigate( "http://www.google.com" );18.SHDocVw.WebBrowser wb =this .webBrowser1.ActiveXInstanceasSHDocVw.WebBrowser;19.wb.NavigateComplete2 +=newSHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(wb_NavigateComplete2);20.}21.22. voidwebBrowser1_Navigating( objectsender, WebBrowserNavigatingEventArgs e)23.{24. if(e.Url.ToString().ToLower().Trim( "/" ) =="cmd://onmousedown" )25.{26.MessageBox.Show( "jinjazz 路过" );27.e.Cancel =true ;28.}29.}30. voidwb_NavigateComplete2( objectpDisp,ref objectURL)31.{32.mshtml.IHTMLDocument2 doc = ( this .webBrowser1.ActiveXInstanceasSHDocVw.WebBrowser).Documentasmshtml.IHTMLDocument2;33.doc.parentWindow.execScript( "document.onmousedown=function(e) { window.location="cmd://onmousedown"}" ,"javascript" );34.}35.36.37.}38.}