C#等待浏览器加载芬兰文,然后启动计时器
所以我一直在努力解决这个问题很长时间了。我试图找出如何启用计时器,并在网页加载完成时将其间隔设置为1000 以下是我迄今为止尝试过的代码:C#等待浏览器加载芬兰文,然后启动计时器,c#,multithreading,winforms,C#,Multithreading,Winforms,所以我一直在努力解决这个问题很长时间了。我试图找出如何启用计时器,并在网页加载完成时将其间隔设置为1000 以下是我迄今为止尝试过的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.T
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.Navigate("website.com");
webBrowser1.ScriptErrorsSuppressed = true;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("brukernavn")[0].SetAttribute("value", textBox1.Text);
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("passord")[0].SetAttribute("value", textBox2.Text);
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("login_buton")[0].InvokeMember("click");
timer1.Enabled = true;
timer1.Interval = 7000;
}
private void timer1_Tick(object sender, EventArgs e)
{
webBrowser1.Navigate("website.com/mygambling.php");
//Here i need a code to enable timer2 whit interval 1000 when the website is finnished loading
}
private void timer2_Tick(object sender, EventArgs e)
{
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("bet")[0].SetAttribute("value", 250);
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("start")[0].InvokeMember("click");
}
}
}
因此,我的问题是,当页面加载完成时,如何启用计时器2并将计时器2间隔设置为1000?您已经知道如何启用计时器。webbrowser有一个您可以订阅的事件。这将帮助您确定页面加载何时完成:
private void timer1_Tick(object sender, EventArgs e)
{
webBrowser1.Navigate("website.com/mygambling.php");
webBrowser1.DocumentCompleted += DocumentCompleted;
}
private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.DocumentCompleted -= DocumentCompleted;
timer2.Enabled = true;
}
您已经知道如何启用计时器。webbrowser有一个您可以订阅的事件。这将帮助您确定页面加载何时完成:
private void timer1_Tick(object sender, EventArgs e)
{
webBrowser1.Navigate("website.com/mygambling.php");
webBrowser1.DocumentCompleted += DocumentCompleted;
}
private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.DocumentCompleted -= DocumentCompleted;
timer2.Enabled = true;
}
你处理?你处理?换句话说,我们必须订阅事件
DocumentCompleted
,以确保我们可以操纵WebBrowser
webBrowser1.DocumentCompleted+=(对象发送方,WebBrowserDocumentCompletedEventArgs e)=>{System.Diagnostics.Debug.WriteLine(“文档已经加载,我现在可以在上面进行操作!”;}
致-Thomas Weller:取消订阅的原因和好处是什么webBrowser1.DocumentCompleted-=DocumentCompleted;
?@LJ:因为我不知道接下来要做什么,所以我取消订阅活动。这样可以在加载下一页时导航到其他地方,而无需再次启用计时器。换句话说,我们必须订阅事件DocumentCompleted
以确保我们可以操作WebBrowser
webBrowser1.DocumentCompleted+=(对象发送者,WebBrowserDocumentCompletedEventArgs e)=>{System.Diagnostics.Debug.WriteLine(“文档已加载,我现在可以在上面进行操作!”);}
致-Thomas Weller:取消订阅的原因和好处是什么webBrowser1.DocumentCompleted-=DocumentCompleted;
?@LJ:因为我不知道下一步要做什么,所以我取消订阅活动。这样可以在加载下一页时导航到其他地方,而无需再次启用计时器。