2013-02-28 34 views
1

我的Winform應用程序中有一個webbrowser控件。無法在運行時在瀏覽器控件中設置網址屬性

以下區域屬於代碼樣本的劃分。

區域1 當前加載的網頁是「http://MyWebsite.com」。我使用代碼在網頁上點擊鏈接(說「關於我們」)。這個點擊會帶我到新的網頁(「http://MyWebsite.com/About_Us」)。在導航事件中,我正在錄製這個新的網址。

區域2 現在我想要得到這個新網址的所有元素,並點擊一個新的鏈接。但不知道該怎麼做。在區域2中,我也將新的url分配給webbrowser對象。但在這種情況下沒有任何反映。 webbrowser.url仍包含前一個url路徑。

我有以下的按鈕,單擊代碼:

private void Button1Click(object sender, EventArgs e) 
    { 
     // Region 1--------------------------------------------- 
     HtmlElementCollection links = webBrowser1.Document.GetElementsByTagName("A"); 
     foreach (HtmlElement link in links) 
     { 
      if (link.InnerText != null && link.InnerText.Equals("Click to view magic")) 
      { 
       link.InvokeMember("Click"); 
       break; 
      } 
     } 
     // EndRegion--------------------------------------------- 


     // Region 2--------------------------------------------- 
     webBrowser1.Url = new Uri(_url.AbsoluteUri, UriKind.Absolute); 
     webBrowser1.Navigate(_url); //New Edit 

     links = webBrowser1.Document.GetElementsByTagName("input"); 
     foreach (HtmlElement link in links) 
     { 
      if ((link.GetAttribute("Name") == "BooHoo")) 
      { 
       link.InvokeMember("Click"); 
       break; 
      } 
     } 
     // EndRegion--------------------------------------------- 
    } 

    private void WebBrowser1Navigating(object sender, WebBrowserNavigatingEventArgs e) 
    { 
     _url = e.Url; 
    } 

誰能幫我做這件事。這個問題可能不是很清楚。如果您需要更多詳細信息,請告訴我。謝謝。

+0

在WebBrowswer對象上沒有Navigate方法嗎?我想我記得有這個問題,並找到一個方法在課堂上做我想改變URL的工作。 – 2013-02-28 15:02:00

+0

我編輯區域2.你的意思是一樣的嗎?如果是,它仍然沒有工作。 – Sandy 2013-02-28 15:06:19

+0

也許我已經建立了不同於你的事件,但我在2區導航工作。 – 2013-02-28 17:15:42

回答

0

所以這有點棘手,否則我很粗心。我正在以調試模式觀看屬性值。後來我注意到,在Visual Studio中按F5(繼續調試)並且所有方法都運行後,webbrowser顯示更改後的值。

希望它有幫助。

+0

因此您在導航事件之前獲得了Click事件?事件是C#編程中最大的挑戰之一,並且一直是許多錯誤的否定和誤報的來源;-) – 2013-03-12 13:33:41

+0

你讓我對馬修斯 – Sandy 2013-03-12 14:16:52

相關問題