0

我编写了一个程序,用于通过网站向我的一些朋友发送消息。它工作正常,但由于某种原因,我无法通过一键单击事件使其正常工作。如果我没有第二个按钮单击 SEND 数据方法(即 POST 数据),即使新 URL 已加载到 webBrowser URL* 中,它也将始终继续将消息发送给同一个人,但如果我让第二次点击事件一切正常。我错过了什么?

*使用调试器,我看到每次迭代都会加载一个新的 URL,但我确实在 HTTP 调试器上看到程序每次都发送到相同的 URL

private void button1_Click(object sender, EventArgs e)
    {
        ListBox();
    }
 private void ListBox()
    {
        //gets name from ListBox        

        GetData();


    }

private void GetData()
    {

       webBrowser1.Navigate(inputURLID);

        //SendData ();  Always sends to the same person if I call from here, so I made a second button click and it works fine
    }

private void button2_Click(object sender, EventArgs e)// works fine like this
     {
         webBrowser1.Document.GetElementById("subject").SetAttribute("value", textBox2.Text);//To (username)

         webBrowser1.Document.GetElementById("message").SetAttribute("value", richTextBox1.Text);//Subject

         webBrowser1.Document.GetElementById("Submit").InvokeMember("click");//Message

     }

……

private void SendData()// always sends to the same person if I just do it like this
    {


        webBrowser1.Document.GetElementById("subject").SetAttribute("value", textBox2.Text);//To (username)

        webBrowser1.Document.GetElementById("message").SetAttribute("value", richTextBox1.Text);//Subject

        webBrowser1.Document.GetElementById("Submit").InvokeMember("click");//Message
    }
4

1 回答 1

1

DocumentCompleted仅在加载 url 时(触发事件时)尝试填充您的字段:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{

   webBrowser1.Document.GetElementById("subject").SetAttribute("value", textBox2.Text);//To (username)

   webBrowser1.Document.GetElementById("message").SetAttribute("value", richTextBox1.Text);//Subject

   webBrowser1.Document.GetElementById("Submit").InvokeMember("click");//Message
}
于 2013-06-11T22:17:38.373 回答