【问题标题】:Why the OuterHTML feature leads to an Error为什么 OuterHTML 功能会导致错误
【发布时间】:2013-04-28 01:27:00
【问题描述】:

我一直在尝试更改 HTML 代码中选择标记的 HTML 代码,但每当我这样做时,

"Object reference not set to an instance of an object"

发生错误。这是 C# 代码:

 public void SetDefaultValue(string ControlID,string Value)
 {
HtmlDocument doc = webBrowser1.Document;
HtmlElement list = doc.GetElementById(ControlID);
list.OuterHTML+= Value;         
 }
private void Form1_Load(object sender, EventArgs e)
{            
    htmlLoadWebbrowser1.SetDefaultValue("D8876943-5861-4D62-9249-C5FEF88219FA", "<SELECT id=\"D8876943-5861-4D62-9249-C5FEF88219FA\" multiple size=\"4\" name=\"drop1\"> <OPTION value=\"3\">item 3</OPTION></SELECT>");            
}

这个函数应该是改变HTML页面中选择标签的代码,它通过“controlID”接收控件的ID,并通过“Value”生成内部代码。我怀疑我需要在其他地方调用该函数,问题是我不知道在哪里。谢谢。

【问题讨论】:

  • 哪一行产生了这个错误?
  • @JanDvorak: 当我在表单加载中调用它时会产生错误,但是当我在按钮中调用它时,程序运行正确。(我需要在网络浏览器完全加载时调用它但我的网络浏览器是在用户控件中定义的)
  • list.OuterHTML+= Value; 没有意义。也许你想要list.OuterHTML= Value;
  • @Musa:你说得对,但我需要之前的值。
  • 您是要在&lt;select&gt; 中添加&lt;option&gt; 还是什么?

标签: c# html webbrowser-control


【解决方案1】:

您的代码假定文档已完成加载,但在表单加载期间并非如此。 等到 DocumentCompleted 事件再访问文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2020-07-16
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多