2016-05-13 11 views
-2

私はbtnRunのボタンtimer1を実行しています。 timer1では、要素のidを取得し、この要素に "blah blah"のような値を挿入したいと考えています。`foreach`ループでブレークした後に値が失われるのはなぜですか?

効果があります。 しかし、2回目のクリックでbtnRunwebBrowser2.Documentの値が失われました。 timerが必要です。

btnRunを何度もクリックするので、webBrowser2.Documentの値をいつも保持する方法はありますか?

private WebBrowser webBrowser2;

そして、私はリンクに行く別のボタン:

は、私が唯一のトップにアプリケーションを宣言します。

this.webBrowser2.Navigate( "http://example.com");

private void btnRun_Click(object sender, EventArgs e) 
{ 
    this.timer1.Start(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    this.count++; 
    string str = ""; 
    if (this.count >= this.line.Count<string>()) 
    { 
     this.count = 0; 
     str = this.line[0]; 
    } 
    else 
    { 
     try 
     { 
      str = this.line[this.count]; 
     } 
     catch 
     { 
     } 
    } 
    int num = new Random().Next(0x186a0, 0x5f5e0ff); 
    try 
    { 
     string str2; 
     string str3; 
     HtmlElementCollection elementsByTagName; 

     int values = 0; 
     values = (str.Length - str.Split(new char[] { '*' })[1].Length) - 1; 
     str2 = "http://example.com" + str.Split(new char[] { '*' })[0].Substring(0, values) + "&text=*" + str.Split(new char[] { '*' })[1] + "&rand=" + num.ToString(); 
     str3 = this.code(str2); 
     if (str3 == "") 
      return; 
     List<string> list = new List<string>(); 
     MatchCollection matchs = Regex.Matches(str3, "(<a.*?>.*?</a>)", RegexOptions.Singleline); 
     foreach (Match match in matchs) 
     { 
      if (!list.Contains(match.Groups[1].Value)) 
      { 
       string str5 = match.Groups[1].Value; 
       if (str5.Contains("javascript:foward_information")) 
       { 
        string[] strArray = str5.Split(new char[] { '\'' }); 
        if (strArray[3] == "0") 
        { 
         string str6 = strArray[1]; 
         this.timer1.Stop(); 
         this.webBrowser2.Document.GetElementById("txtCode").InnerText = str6; 
         elementsByTagName = this.webBrowser2.Document.GetElementsByTagName("input"); 

         foreach (HtmlElement element in elementsByTagName) 
         { 
          if (element.GetAttribute("id").Equals("cmdGit")) 
          { 
           element.InvokeMember("Click"); 

           //var objWin = window.self; 
           //objWin.open('', '_self', ''); 
           //objWin.close(); 
          } 
         } 
         this.timer1.Stop(); 
        } 
       } 
      } 
     } 
    } 
    catch(Exception ex) 
    { 
     throw ex; 
    } 
} 
+0

どこからwebBrowser2にデータを入力していますか? – BugFinder

+0

@BugFinder私の質問が更新されました。私は 'private WebBrowser webBrowser2'とリンクするナビゲーションだけを宣言します。 – vanloc

+3

"foreachループでブレーク" - foreachループで何が壊れていますか?ループに途切れはありません。 – TomTom

答えて

1

タイマーを停止するためにタイマーコントロールのStop()をブレークする代わりに、タイマーを中断しようとしています。

this.timer1.Stop(); 
0

コードの一部がページのボタンをクリックしています。これにより、Webサーバーからページがリロードされます。これにより、ページ上の任意の値がリセットされます。

私があなたがしたいことを理解していないので、さらにアドバイスをするのは難しいです。

関連する問題