在C#webbrowser控件

时间:2016-04-09 12:31:10

标签: c# html visual-studio-2012 recursion

我需要根据以下html元素的可见性执行一个方法。

<div id="loading" style="height: 201px; width: 793px; visibility: hidden;">

我用来检查visibility属性的方法工作正常。

 public bool isloading()
                  {
                      string v;

                     v= webBrowser1.Document.GetElementById("loading").Style;
                     if (v.Contains("visible")) { return true; }
                     if (v.Contains("hidden")) { return false; }
                     else
                         return false;

                  }
我正在这样使用它。该应用程序在访问此代码时冻结。需要帮忙。我无法使用webbrowser1.documentcompleted事件,因为这是一个AJAX调用。我唯一的选择是检查&#34;可见性&#34;属性。

 public void battleloop()
                  {
                      if (!isloading())
                      {
                          universalclcikbutton();
                      }
                      else 
                      {
                          battleloop();
                      }
                   }

我希望循环继续检查isloading()并执行universalclickbutton();每当isloading()为false时。我知道它在方法中调用方法。有人请给我替代品吗?

当涉及到上述代码时,应用程序会冻结,因为它可能是递归的吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用while循环

,而不是这个

while (!isloading())
{
    universalclcikbutton();
}

所以它会自动调用isloading函数。

答案 1 :(得分:0)

得到了我的答案。事实证明,我不仅仅是一个新手。 我刚从工具箱中使用了计时器控件。

在我执行的timer_tick事件中

 private void timer1_Tick(object sender, EventArgs e)
                  {
                      if (!isloading()) { universalclcikbutton(); }

                  }

每当我想开始我的通用按钮();方法我使用了timer.start();和timer.stop();停止循环。事实证明最后很简单