首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用InvokeMember c#的循环循环

使用InvokeMember c#的循环循环
EN

Stack Overflow用户
提问于 2014-03-07 09:47:15
回答 2查看 164关注 0票数 0

我试图标记一些复选框,然后使用网页浏览器提交一个表单,我成功了,问题是我的程序越来越多,它似乎提交了表单,然后我的表单在提交之前,再次提交,然后再提交和again...again....again.无穷无尽的。我不明白为什么。

我意识到这部分发生了这样的事情:

代码语言:javascript
复制
form.InvokeMember ("submit");

这是我的密码

代码语言:javascript
复制
private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("https://www.mysite.com");
        }

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

            this.Text = e.Url.ToString() + " loaded";
            webBrowser1.Document.GetElementById("check1").InvokeMember("CLICK");
            webBrowser1.Document.GetElementById("check2").InvokeMember("CLICK");
            webBrowser1.Document.GetElementById("check3").InvokeMember("CLICK");
            webBrowser1.Document.GetElementById("check4").InvokeMember("CLICK");
            webBrowser1.Document.GetElementById("check5").InvokeMember("CLICK");

            foreach (HtmlElement form in webBrowser1.Document.Forms)
            {
                if (form.Name == "SearchForm")
                {
                    form.InvokeMember("submit");

                }   
            }            
        }

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            this.Text = "Navigating";
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-07 09:49:55

你已经说过,任何时候,当你完成一个页面,你想提交搜索表格。所以当提交完成后,它将完成页面的加载.你会触发同样的事件。这是一个完全自然的循环。

您应该问自己要检测到什么条件,这意味着您应该在页面加载完成后提交表单。例如,只有在搜索框中没有东西时,才会出现这种情况吗?还是根据URL进行更改?或者,在提交表单之前,您只想解开“文档已完成”的事件处理程序吗?没有更多的背景,我们无法真正判断,但这就是为什么你要设定这种行为。

票数 1
EN

Stack Overflow用户

发布于 2014-03-07 09:51:07

维克多,尝试为提交操作设置一个不同的表单(*.aspx)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22246634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档