Webbrowser Scrollto获取NullReferenceException

时间:2014-02-27 07:09:21

标签: c#

我尝试在Webbrowser中打开一个html页面。这适用于:

webBrowser1.Navigate("http://examplepage.com");

但后来我想自动滚动到用户定义的坐标(x,y)。我认为这一定是:

webBrowser1.Document.Window.ScrollTo(0, 10);

如果我启动程序,我会收到以下错误消息:

  

未处理NullReferenceException未将对象引用设置为对象实例

以下是完整的代码:

namespace Blitzer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            System.Windows.Forms.WebBrowser webBrowser1 = new System.Windows.Forms.WebBrowser();
            webBrowser1.Navigate("http://www.examplepage.com");
            webBrowser1.Document.Window.ScrollTo(0, 10);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

webbrowser以异步方式导航,因此如果您在开始导航后立即尝试访问该文档,则它将不会被加载。

尝试创建DocumentCompleted事件处理程序并在那里滚动:

    private void button1_Click(object sender, EventArgs e)
    {
        System.Windows.Forms.WebBrowser webBrowser1 = new      System.Windows.Forms.WebBrowser();

        webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
        webBrowser1.Navigate("http://www.examplepage.com");

    }

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        webBrowser1.Document.Window.ScrollTo(0, 10);
    }