Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#等待浏览器加载芬兰文,然后启动计时器_C#_Multithreading_Winforms - Fatal编程技术网

C#等待浏览器加载芬兰文,然后启动计时器

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

所以我一直在努力解决这个问题很长时间了。我试图找出如何启用计时器,并在网页加载完成时将其间隔设置为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.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:因为我不知道下一步要做什么,所以我取消订阅活动。这样可以在加载下一页时导航到其他地方,而无需再次启用计时器。