2013-06-11 103 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