Web 浏览器控制和导航帮助

本文关键字:导航 帮助 控制 浏览器 Web | 更新日期: 2023-09-27 18:07:05

我可以将链接加载到webBrowser1.通过添加按钮手动导航。但是,在循环从列表框中处理时,我无法让它工作。是否有应该添加的响应或等待功能?现在我听到的只是咔哒声,浏览器控制窗口中没有任何反应。

private void start_btn_Click(object sender, EventArgs e)
{
    if (listId.Items.Count != 0 && listCell.Items.Count != 0)
    {
        for (int a = 0; a < listId.Items.Count; a++)
        {
            for (int b = 0; b < listCell.Items.Count; b++)
            {
                MakeReq(txtWebUpdate.Text + listId.Items[a].ToString() + 
                        "&admire=1", listCell.Items[b].ToString());
            }
        }
    }
}
void MakeReq(string Url, string Cell)
{
    try
    {
        txtSetUpdate.Text = (Cell);
        webBrowser1.Navigate(new Uri(Url));
    }
    catch (System.UriFormatException)
    {
        return;
    }
}

Web 浏览器控制和导航帮助

这是我

最终使用的代码。

   void WaitBrowserLoading()
    {
        while (webBrowser1.IsBusy)
            Application.DoEvents();
        for (int i = 0; i < 500; i++)
            if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
                System.Threading.Thread.Sleep(10);
            }
            else
                break;
        Application.DoEvents();
    }

你的目标是什么?

在这里,您只需调用 Navigate 它只是启动导航。它不在乎启动该过程后会发生什么。因此,在您的代码中,循环会连续启动几个Navigate,如果已完成,则每个都会取消前一个。因此,您实际看到的唯一完整的将是列表中的最后一个。