【发布时间】:2011-10-11 07:49:06
【问题描述】:
我正在尝试加载 WebBrowser 内容,然后我想添加一些文本并滚动到底部。
这是我的代码示例:
webBrowser1.Url = new System.Uri("file:///" + filePath);
webBrowser1.Document.Body.InnerHtml += text;
webBrowser1.Document.Body.ScrollTop = webBrowser1.Document.Body.ScrollRectangle.Height;
当我运行它时,有一个未处理的异常“对象引用未设置为对象的实例”。或者,当我注释行滚动时,文本会添加到 WebBrowser 的先前内容中,然后导航到新内容。
所以在我的示例代码的第一行之后,我放了:
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
但它搞砸了一切。我的应用程序正在做一些非常奇怪的事情,例如多次调用同一个方法,而实际上应该调用一次。
有什么解决办法吗?
【问题讨论】:
-
您是否有任何在后台运行的计时器或异步方法可能会影响这一点? webBrowser1 对象上是否有任何事件会被调用,比如 OnReadyStateChanged?
标签: c# browser innerhtml doevents readystate