0

我有一个多行 textBox1 和 webbrowser1

当文档完成时,我希望程序用一行填充一个元素,然后做一些事情,然后用第二行等重新填充相同的元素............

代码是:

       HtmlEleme ele = webBrowser1.Document.GetElementById("element ID");
       if(ele != null)
                ele.InnerText = textBox1.Lines[0];

我怎么能做这个(一段时间或.....)以及如何?

我应该把代码放在哪里?

4

1 回答 1

1

如果您的浏览器将在您单击按钮时加载页面,您可以按照以下步骤操作:

 bool loaded;
void Operate()
{
            string[] lines = TextBox1.Text.Split('\n');
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

            for (int i = 0; i < lines.Length; i++)
            {
                loaded = false;
                HtmlElement ele = webBrowser1.Document.GetElementById("element ID");
                ele.InnerText = lines[i];
                //click a button here
                HtmlElement elmbutton = webBrowser1.Document.GetElementById("ButtonID");
                elmbutton.InvokeMember("click");
                //here wait for web browser navigate.
                while (!loaded)
                {
                    System.Threading.Thread.Sleep(10);
                   Application.DoEvents();
                }
            }

        }

        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            loaded = true;
        }

另一方面,我必须警告你Application.DoEvents()

于 2012-10-18T22:15:43.947 回答