【问题标题】:make a loop inside string[]? [closed]在 string[] 中创建一个循环? [关闭]
【发布时间】:2012-10-19 06:30:05
【问题描述】:

我有一个多行 textBox1 和 webbrowser1

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

代码是:

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

我怎样才能做到这一点(一段时间或.....)以及如何?

我应该把代码放在哪里?

【问题讨论】:

  • 那么你在填充一个元素后做某事是什么意思?
  • 请不要在标题中添加标签。此外:您到底想做什么?向我们展示一个元素在您的代码“处理”之前和之后的外观示例。
  • 做一些事情是:点击一个按钮或改变一个元素值
  • 对于标签,我太棒了
  • 我以另一种方式提出了这个问题,但他们告诉我我是一名黑客,真正的问题在这里:

标签: c# string loops browser


【解决方案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() 的缺点

【讨论】:

  • 但是“已加载”有一些问题
  • 程序运行没有错误,但运行时没有任何反应
  • 您应该在点击前分配“buttonID”
猜你喜欢
  • 2019-05-03
  • 1970-01-01
  • 2021-08-26
  • 2013-02-18
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 2017-04-19
相关资源
最近更新 更多