Hello I hope someone can help me with this problem that I am having I have a class called myBrowser which inherits from the WebBrowser control this control is opened in a STA thread the browser navigates to a given address then fills in the web forms controls but when I try to use InvokeMember("click") nothing happens. I have tryed to use the following code to click the link
void ClickLink(HtmlElement link) { if (this.InvokeRequired) { this.BeginInvoke((MethodInvoker)delegate() { ClickLink(link); }); } else { link.InvokeMember("click"); } }
When this method is called from the following
HtmlElementCollection links = this.Document.GetElementsByTagName("a"); foreach (HtmlElement link in links) { string href = link.GetAttribute("href").ToLower(); if (link.InnerText != null) { text = link.InnerText.ToLower(); } foreach (string fname in address) { if (href.Contains(fname)|| text.Contains(fname)) { ClickLink(link); // link.InvokeMember("click"); Thread.Sleep(5000); // Application.Run(); while(this.ReadyState!=WebBrowserReadyState.Complete) { Application.DoEvents(); } } }
nothing happens but when I step through the code in the ClickLink method is just passing over the InvokeRequired if statement and going direct to the else statement.
how can I get the InvokeMember to work.