C# WinForms Web浏览器控件强制重新聚焦?

C# WinForms Web浏览器控件强制重新聚焦?,c#,winforms,focus,webbrowser-control,lost-focus,C#,Winforms,Focus,Webbrowser Control,Lost Focus,我正在尝试自动化一个需要反复单击按钮的web过程。当我的代码“单击”该按钮(从我表单上的WebBrowser控件获得的HtmlElement)时,它将焦点带回我的应用程序,更具体地说是WebBrowser控件。我希望更好地自动化这个过程,这样用户可以在过程进行时做其他事情,但是如果窗口本身没有动画化,因为它正在获得焦点,那么这就不可能发生 与单击关联的代码为: HtmlElement button = Recruiter.Document.GetElementById("recruit_link

我正在尝试自动化一个需要反复单击按钮的web过程。当我的代码“单击”该按钮(从我表单上的WebBrowser控件获得的HtmlElement)时,它将焦点带回我的应用程序,更具体地说是WebBrowser控件。我希望更好地自动化这个过程,这样用户可以在过程进行时做其他事情,但是如果窗口本身没有动画化,因为它正在获得焦点,那么这就不可能发生

与单击关联的代码为:

HtmlElement button = Recruiter.Document.GetElementById("recruit_link");
button.InvokeMember("click");
我也尝试过button.RaiseEvent(“onclick”),我得到了完全相同的结果,有焦点问题等等

我也尝试过隐藏表单,但是当调用InvokeMember/RaiseEvent方法时,我正在处理的任何内容都会失去焦点,但是由于表单不可见,因此焦点似乎没有任何作用


webbrowser唯一的非默认设置是它的URI设置为“我的页面”,ScriptErrorsAppressed设置为True。

在IE7或更高版本中,您可以在webbrowser站点上实现IProtectFocus并拒绝焦点更改。如果您使用支持这种定制的原始ActiveX或其包装器,您的境况会好得多,例如。如果必须使用winform webbrowser控件,则需要。

为什么需要单击此按钮?它在发送一些表格? 如果是,您可以使用
WebClient
模拟发送表单,而无需图形界面


基本上,几乎任何重要的内容都需要使用
Get
Post
multipart/Post
连接到网站,因此
WebClient
将是完美的。你可以简单地获取这个按钮所在的站点,并对其进行解析,以获得点击它所做的事情。然后模拟你自己的动作。

C#编程语言没有webbrowser控件。哈哈,你很有趣:System.Windows.Forms.webbrowser这在C#语言规范中没有定义。严格来说,这个问题也与英语有关,但你也不应该用英语来标记这个问题。C#或英语不能帮助你解决非语言问题。我没有使用iexplorer.exe或任何“真正”的浏览器。我使用的是.Net Framework 4.0 beta版以外的System.Windows.Forms.WebBrowser控件。我说的也不是其他浏览器。webbrowser站点是System.Windows.Forms.webbrowser中的嵌套类。