Handling clicks on buttons in the HTML page - hope this helps: Given:
<HTML> <BODY id=B1> <H1>Test</H1> <input type="BUTTON" value="Click Me!" id=button1 /> <P id=Test1>Test 1 x</P> <P id=Test2>Test 2 x</P> <P id=Test3>Test <B>3</B> x</P> </BODY> </HTML> In Form_Load: //Handle document complete so that we know when the web page is available axWebBrowser1.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(this.axWebBrowser1_Docum entComplete); Now in DocumentComplete: //When the document is loaded we can work with it private void axWebBrowser1_DocumentComplete(object sender, DWebBrowserEvents2_DocumentCompleteEvent e) { //Get the HTML Document coclass object document = axWebBrowser1.Document; if (null == document) return ; //Get the IHTMLDocument interface IHTMLDocument2 doc2 = (IHTMLDocument2)document; //Now create an RCW of the correct type for the co-class - by default it comes back as //an __ComObject //NOTE: This will not be necessary in RTM HTMLDocument htmlDoc = (HTMLDocument)Marshal.CreateWrapperOfType(document,typeof(HTMLDocument)) ; //Now we can get the event interface and handle clicks on the document //This will handle all click events because everything bubbles up to //the document HTMLDocumentEvents2_Event htmlEvents = (HTMLDocumentEvents2_Event)htmlDoc; htmlEvents.onclick += new HTMLDocumentEvents2_onclickEventHandler(this.Doc_OnClick); //Get the button in the page IHTMLInputButtonElement buttonElem = (IHTMLInputButtonElement)(doc2.all.item("button1",null)); //Get the coclass - have to make sure we get the exact coclass here or we get an exception //In our case the coclass is HTMLInputButtonElement HTMLInputButtonElement htmlElem = (HTMLInputButtonElement)Marshal.CreateWrapperOfType(buttonElem,typeof(HT MLInputButtonElement)); //Test that we've got it MessageBox.Show("VALUE: " + htmlElem.value); //Now we can get the event interface and handle events on it HTMLButtonElementEvents_Event buttonEvents = (HTMLButtonElementEvents_Event)htmlElem; buttonEvents.onclick += new HTMLButtonElementEvents_onclickEventHandler(this.Button1_OnClick); } private bool Doc_OnClick(MSHTML.IHTMLEventObj evObj) { string msg = "You Clicked on the HTML Page, we handled it in managed code.\nYou clicked on "; MessageBox.Show(msg + evObj.srcElement.tagName + " " + evObj.srcElement.id); return true; } private bool Button1_OnClick() { MessageBox.Show("You Clicked on the BUTTON, we handled it in managed code"); return true; } -----Original Message----- From: Jade Martin [mailto:[EMAIL PROTECTED]] Sent: Tuesday, June 04, 2002 9:51 AM To: [EMAIL PROTECTED] Subject: Re: [DOTNET] Old Unanswer Question: How do you trap hosted IE events? I found a really nice tutorial at http://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q645q I now can trap link clicks by using the BeforeNavigate event. Now I just need to figure out how to trap button clicks. You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com. You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.