C# WebBrowser控件在C中第二次不起作用

C# WebBrowser控件在C中第二次不起作用,c#,.net,web,controls,C#,.net,Web,Controls,我有一个通过应用程序与网站交互的项目 这个想法是,当我点击一个特定的web元素时,会出现第二个表单。它包含两个文本框,输入值并按Enter键后,它会将托盘值粘贴到网页上的托盘ID,然后按+按钮并提交网页。它第一次奏效了。但是,在提交网页之后。我不能再做同样的事情了,尽管我关闭了第二个表单,然后通过单击该web元素再次打开它 调试时,系统确实实现了回车,并执行了其中的所有代码,包括将值粘贴到托盘ID中,然后单击+按钮。然而,它只是第一次起作用,在网站提交后就不再起作用了 我不知道为什么?也许我有些

我有一个通过应用程序与网站交互的项目

这个想法是,当我点击一个特定的web元素时,会出现第二个表单。它包含两个文本框,输入值并按Enter键后,它会将托盘值粘贴到网页上的托盘ID,然后按+按钮并提交网页。它第一次奏效了。但是,在提交网页之后。我不能再做同样的事情了,尽管我关闭了第二个表单,然后通过单击该web元素再次打开它

调试时,系统确实实现了回车,并执行了其中的所有代码,包括将值粘贴到托盘ID中,然后单击+按钮。然而,它只是第一次起作用,在网站提交后就不再起作用了

我不知道为什么?也许我有些地方错了,我在C语言编程方面没有太多经验

这就是它的形象

提交网页后,第二个表单仍然存在,因此我认为它可能会解决问题

这是我的密码:

表单1:我只是发布显示表单2的部分,并从web获取元素

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        pallet_element = webBrowser1.Document.GetElementById("pallet_id");
        weighing_element = webBrowser1.Document.GetElementById("weighing_auto");
        add_new_element = webBrowser1.Document.GetElementById("btnNewWNR");
        no_Of_WNR = webBrowser1.Document.GetElementById("noOfWNR");

        if (no_Of_WNR != null)
        {
            // number of row
            int no = Convert.ToInt32(no_Of_WNR.GetAttribute("value"));
            // button that saves a row
            //save_element = webBrowser1.Document.GetElementById("btnSaveWNR" + no);
            // gross weight of a row
            gross_element = webBrowser1.Document.GetElementById("wnr_gross_weight_" + no);
        }

        if (pallet_element != null && weighing_element != null && add_new_element != null && gross_element != null)
        {
            frm2 = new Form2(pallet_element, weighing_element, add_new_element, gross_element);

            pallet_element.Click += new HtmlElementEventHandler(OpenWeigh);
        }            
    }

    public void OpenWeigh(object sender, HtmlElementEventArgs e)
    {            
        // setting the COM port connection
        frm2.SettingRS232(count);
        count++;
        frm2.ShowDialog();            
    }
表格2:

private void txtPallet_KeyPress(object sender, KeyPressEventArgs e)
    {           
        if (e.KeyChar == '\r')
        {
            if (this.pallet_element != null && this.weighing_element != null && add_new_element != null)
            {                    
                // althought the flow comming and get through of below rows
                // but nothing happened on the web after the first time run successfully

                // set value in the txtPallet into pallet_id
                this.pallet_element.InnerText = txtPallet.Text;
                this.weighing_element.InnerText = txtWeight.Text;
                add_new_element.InvokeMember("click");
                this.gross_element.InnerText = txtWeight.Text;                   
            }
        }
    }

这是一个与你在第一次发帖时做了些什么有关的州问题吗。你是在增加一个计数器还是什么来把你转移到一个新的目标?看起来逻辑设计可能是,您不应该根据业务规则对同一数据执行两次相同的操作?在第二篇文章中,你是在处理相同的数据还是不同的数据?请定义你所说的第二次不工作是什么意思?数据是否被发送,但什么也没有发生,或者发送没有发生。在你发回邮件后,是否有一行的+按钮可用?我想答案可能就在HTML中。我会在回发后比较这两个文档,并确保您正确定位了正确的元素。实际上,无论我向网页添加任何行,您在图像中看到的托盘Id和+按钮都是静态的。我只需要将值粘贴到托盘Id并自动按下+按钮,其余的是web作业Javascript在您提交托盘Id后,该行是否仍有托盘Id的文本框或是否更改为标签?另外,当您说提交网页后,第二个表单仍然存在,因此我认为这可能是问题所在。-为什么它还在那里?为什么你不能这样做呢?关闭表格2?这似乎是一件容易排除的事情。如果您不关闭它,那么您也不会处理它,因此如果是这种情况,它内部可能存在打开/阻塞连接。