none
WebBrowser应用的问题请教高手 RRS feed

  • 问题

  • 我想做一个小软件,应用到WebBrowser控件以下是我的一些代码:
     private void Form1_Load(object sender, EventArgs e)
            {
                            webBrowser1.Navigate(@"http://www.XXX.com");
                           
            }
     private void button1_Click(object sender, EventArgs e)
            {
              ClickTheButton();这个是我设置的点击网页中某个按钮的事件
              System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser1.DocumentStream,  System.Text.Encoding.GetEncoding("utf-8"));
                    string gethtml = getReader.ReadToEnd();
                    textBox2.Text = gethtml;这段是提取点击后返回网页流的代码
             
             }
         ClickTheButton()
    {
    点击事件。。。。。。。。。。。。
    }
    问题来了,当我按button1的时候,返回的是点击前的数据流,而不是点击后的数据流。请问,这个是为什么呢?应该要怎么改呢?

    2009年8月14日 3:09

答案

  • 你好,直接使用DocumentText属性就可获得网页的源代码

    你这里可能是点击事件后Webbrowser对新页面尚未加载完

    你可以修改试试看

    private void button1_Click(object sender, EventArgs e)
            {
              ClickTheButton();这个是我设置的点击网页中某个按钮的事件
    while(true)
    {
    if(this.webBrowser1.ReadyState==WebBrowserReadyState.Complete)
    {
              System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser1.DocumentStream,  System.Text.Encoding.GetEncoding("utf-8"));
                    string gethtml = getReader.ReadToEnd();
                    textBox2.Text = gethtml;这段是提取点击后返回网页流的代码
    break;
    }
    }
             
             }


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月14日 5:52
    版主

全部回复

  • 你好,直接使用DocumentText属性就可获得网页的源代码

    你这里可能是点击事件后Webbrowser对新页面尚未加载完

    你可以修改试试看

    private void button1_Click(object sender, EventArgs e)
            {
              ClickTheButton();这个是我设置的点击网页中某个按钮的事件
    while(true)
    {
    if(this.webBrowser1.ReadyState==WebBrowserReadyState.Complete)
    {
              System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser1.DocumentStream,  System.Text.Encoding.GetEncoding("utf-8"));
                    string gethtml = getReader.ReadToEnd();
                    textBox2.Text = gethtml;这段是提取点击后返回网页流的代码
    break;
    }
    }
             
             }


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月14日 5:52
    版主
  • 还是不可以那,还是原来那个问题!返回的依然是原来那页面的内容
    2009年8月14日 6:07
  • 你好,

    如果你先调用ClickTheButton方法,是否web page有变化呢?我们不知道你的具体场景,但是Raymond的建议是正确的,你要调用完那个方法,然后等着WebBrowser加载网页结束以便取得新的Web page.



    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年8月17日 5:12
    版主