2013-04-07 34 views
1

我想定義一個公共功能,通過它我可以在網頁瀏覽器控件中設置一些控件的默認值。 網頁瀏覽器顯示一個HTML文件。 以下是我想出了這麼遠;然而,「NullReferenceException異常是未處理」的發生:在網頁瀏覽器控件中設置控件默認值的功能

public void SetDefaultValue(string ControlID,string Value) 
{ 
    webBrowser1.Document.GetElementById(ControlID).InnerText = Value; 
} 
+1

的NullReferenceException是未處理的意思喲沒有這個編號的htmlelemet,或者您的網頁導航是不是completed.could添加約你寫的 – KF2 2013-04-07 05:16:29

+1

更多的代碼,你可能需要等到該文件已準備就緒或完全加載.. – Amitd 2013-04-07 05:18:36

+0

@irsog:我確實有這個ID的htmlelement,因爲我從我的html文件中複製了ID 以下是我在表單加載中調用它的方式: htmlLoadWebbrowser1.SetDefaultValue(「Name」,「comments」 ); 這是錯的嗎? – Pedram 2013-04-07 05:19:11

回答

1

你需要等待文件即可正常加載

public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    var webBrowser = sender as WebBrowser; 
    webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted; 

    webBrowser1.Document.GetElementById("Name").InnerText = "Hello World"; 

}  

private void btnClick(object sender, EventArgs e) 
{ 
    var wbrowser = new WebBrowser(); // or can be existing object 
     // Add web broswer to form or panel here.. 
    wbrowser.DocumentCompleted +=new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted); 
    wbrowser.Navigate("your_page_url_here"); 
} 
+0

:非常感謝。 – Pedram 2013-04-07 05:33:22

+0

歡迎:) thx – Amitd 2013-04-07 07:20:26

1

我寫的適用於您的示例: 首先將您的地址Navigate或設置爲DocumentText

private void Form1_Load(object sender, EventArgs e) 
     { 
      webBrowser1.DocumentText = "<html><body><textarea id=\"Name\" name=\"comments\" cols=\"16\" rows=\"1\">Some Things</textarea></body></html>"; 
     } 

當你的頁面加載時,你可以得到它的元素。

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 
     webBrowser1.Document.GetElementById("Name").InnerText="Some Thing"; 
     } 
+0

:謝謝我的朋友,但Admitd的代碼更有效。 我正在做一個用戶控件,我不能自己設置html值代碼。 再次感謝我的朋友:) – Pedram 2013-04-07 05:36:47

+0

:謝謝你回答我的問題,你的回答對我很有幫助。 – Pedram 2013-04-07 05:41:25

相關問題