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

时间:2012-10-12 03:36:25

标签: c# .net web controls

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

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

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

我不知道为什么?也许我错了一些地方,我没有太多编程C#的经验。

这是它的形象

http://i182.photobucket.com/albums/x38/DNK90/app_zpsd55a4065.jpg

网页提交后,第二种形式仍然存在,所以我认为这可能是问题所在。

这是我的代码:

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

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;                   
            }
        }
    }

0 个答案:

没有答案