2016-09-18 3 views
0

私はこの問題に長い間苦しんでいます。私はタイマーを有効にして、Webページのロードが完了したときにインターバルを1000に設定する方法を見つけようとしていますか?ここでC#ブラウザがフィンランド語の読み込みを待ってからタイマーを開始します

は、私がこれまでに試したコードは次のとおりです。

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を有効にしてページの読み込み完了したときに1000年にタイマ2の間隔を設定することができる方法ですか?

+2

をあなたは[WebBrowser.DocumentCompleted](https://msdn.microsoft.com/en-us/library/system.windows.formsハンドル:これは、ページの読み込みが完了したときを判断するのに役立ちます。 webbrowser.documentcompleted(v = vs.110).aspx)?言い換えれば – GSerg

答えて

4

タイマーを有効にする方法は既にわかっています。ウェブブラウザにはDocumentCompletedイベントがあり、購読することができます。

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; 
} 
+0

は、我々は 'WebBrowser' ' webBrowser1.DocumentCompleted + =(オブジェクト送信者、WebBrowserDocumentCompletedEventArgs E)=> { たSystem.Diagnosticsを操作できることを確認するイベント 'DocumentCompleted'に加入しなければなりません。 Debug.WriteLine( "ドキュメントは既に読み込まれており、その上で操作できます!"); }; ' –

+0

To - トーマス・ウェラー:なぜ退会が行われ、なぜメリット' webBrowser1.DocumentCompleted - = DocumentCompleted; –

+2

@LJ:次に何が行われるのかわからないので、私はそのイベントから退会します。これにより、次のページがロードされたときに再びタイマーを有効にせずに他の場所をナビゲートすることができます。 –

関連する問題