2013-06-11 63 views
0

我有一个程序,我写了一个通过网站发送消息给我的一些朋友。它工作正常,但由于某种原因,我不能让它正常工作,只需点击一个按钮事件。如果我没有第二个按钮点击SEND数据方法(它将POST数据),它会一直持续发送消息给同一个人,尽管新的URL被加载到webBrowser URL *中,但是如果我有第二个点击事件都可以正常工作。我错过了什么?同一个网页总是加载webBrowser

*使用调试我看到每个迭代一个新的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 

    } 

....

发送到同一个URL的HTTP调试器看到
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 
    } 

回答

1

尝试填充你的领域,只有当网址已经被加载(当DocumentCompleted事件被触发):

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

谢谢。我尝试了你的建议,但结果相同。一些我不认为我正在从webBrowser1_DocumentCompleted事件“优雅地”退出。有什么建议么? – eltel2910

+0

你说你有几个“迭代”。它们是通过一个循环生成还是通过单击按钮或其他控件手动生成的? – Andrea

+0

按钮1单击运行除发布数据之外的所有内容,因此要发布的页面已加载,然后点击按钮2然后发布。这2个按钮系统工作正常,当我尝试结合到一个按钮1个周期我有问题 – eltel2910