-2

ボタンとWebブラウザーを含む単純なC#アプリケーションがあります。各ボタンは要求を実行し、要求の結果をWebブラウザーに表示します。そして、次のボタンでリクエストの結果を使用します。

private void button1_Click(object sender, EventArgs e)
        {
webBrowser1.Navigate("http://www.test.com");
}

private void button2_Click(object sender, EventArgs e)
        {
            if (webBrowser1.Document.GetElementById("tesxtbox1") != null)
            {
            HtmlElement txt1 = webBrowser1.Document.GetElementById("tesxtbox1");
            txt1.SetAttribute("value", "test");
            webBrowser1.Document.Forms[0].InvokeMember("submit");
            }
        }

1回のクリックで2つのボタンを実行する方法や方法はありますが、2番目のボタンは、Webブラウザがロードされるまで実行しないでください。

最初のボタンで、私は追加しました

webBrowser1.DocumentCompleted + = new WebBrowserDocumentCompletedEventHandler (Button2_Click);

しかし、2番目のボタンが数回実行されたので、ボタン2の最後の行に追加しました。

webBrowser1.DocumentCompleted - = new WebBrowserDocumentCompletedEventHandler (Button2_Click);

動作しますが、コンソールでボタン2が2回実行されていることがわかります

前もって感謝します!

4

5 に答える 5

3

2番目のボタンクリックを実行するようなことは考えるべきではありません。DocumentCompletedイベントがあり 、後で必要なコードをリッスンして実行する必要があります。

于 2013-02-19T13:29:41.570 に答える
3
private void button3_Click(object sender, EventArgs e)
{
  webBrowser1.DocumentCompleted += (sender, e) => {button2_Click(sender, e);};
  button1_Click(sender, e);
}

button1_Click()によってトリガーされたように、ドキュメントが完全にロードされた後に実行されるbutton2_Clickメソッドを登録します。

于 2013-02-19T13:31:19.553 に答える
1

button1_clickメソッドから次の呼び出しを行うことができます。

button2_Click(sender, e);
于 2013-02-19T13:28:12.140 に答える
1

ドキュメントの読み込みが完了したら、コードを呼び出すイベントを追加する必要があります。

private void Form1_Load(object sender, EventArgs e)
{
    webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}    

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    button2_Click(sender, e);
}
于 2013-02-19T13:29:07.143 に答える
-3

あなたはURLで引数を与えることができます:

webBrowser1.Navigate("http://www.test.com?excuteSecondButton=Yes");

次に、2ページ目で、その引数が指定されているかどうかを確認します。

PageLoad()
{
  if(Request.QueryString["executeSecondButton"].Equals("Yes"))
  {
    button2_Click(button2, new RoutedEventArgs());
  }
}
于 2013-02-19T13:28:41.543 に答える