有个问题困扰了2天了,特来请教:
public partial class Form1 : Form
{
public void 登录_Click(object sender, EventArgs e)
{
webBrowser1.Navigate(" http://www.baidu.com");
string buf;
buf = webBrowser1.DocumentText;
}
}
这个webBrowser1在正常按键单击时,buf就有输出,但是在别的类里面调用“登录_Click()”时,buf就是空的,
webBrowser1状态也是未初始化(窗体上已经显示有内容),哪位有经验提醒一下小弟,谢谢!

解决方案 »

  1.   

    Navigate之后,不是马上就能取到HTML的吧,还要等待下载完成啊
      

  2.   

    你是怎么在 别的类里面调用“登录_Click()” 的
      

  3.   

    补充:webBrowser1 是放在 Form1 上的。
      

  4.   


    他的登录_Click()是public 的
      

  5.   

    回复二楼:
    Form1 a=new Form1();
    a.登录_Click(null,null);
      

  6.   

    回复一楼:
    是Navigate之后,确保页面已经显示有内容的情况下。两种调用方式结果有区别。
      

  7.   

    using System;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        public delegate void WebBrowserDocumentCompleted(String html);    public partial class Form1 : Form
        {
            public event WebBrowserDocumentCompleted OnWebBrowserDocumentCompleted;        public Form1()
            {
                InitializeComponent();
                Control.CheckForIllegalCrossThreadCalls = false;
            }        Boolean _bDocumentCompleted;
            private void button1_Click(object sender, EventArgs e)
            {
                _bDocumentCompleted = false;
                webBrowser1.Navigate("http://www.baidu.com");
                int i = 0;
                while(true)
                {
                    System.Threading.Thread.Sleep(1000);
                    i++;
                    if (i >= 10 || _bDocumentCompleted)
                    {
                        break;
                    }
                }            string buf;
                buf = webBrowser1.DocumentText;
            }        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                // 基本上能下载回成了
                _bDocumentCompleted=true;
                if (OnWebBrowserDocumentCompleted != null)
                {
                    OnWebBrowserDocumentCompleted(webBrowser1.DocumentText);
                }
            }
        }
    }
      

  8.   

    回复楼上,加了时间与加载完成判断也是一样的,到最后webBrowser1的状态还是未初始化。
      

  9.   

    此form1 非彼 form1 
    建议了解一下什么是类,什么是对象
    以及对象的生存期
      

  10.   

    回复楼上,我是初学者,请多指教。
    我愚见,webBrowser1 是 webBrowser的实例化以后的一个对象。生存周期就是从应用程序打开到结束。
    因为他一直都是在我窗体上显示着。
      

  11.   

    此form1 非彼 form1 是指?请明示