AxWebBrowser里的脚步如何调用winform里的函数?寻求解决方案!
譬如:
在C# winform里面的一个AxWebBrowser浏览器控件,AxWebBrowser浏览器加载一张网页时,该网页里面有一个html按钮,请问如何才能做到单击这个html按钮时我的winform程序能响应,也就是说单击html按钮时能调用winform里面的函数呢?。能做到吗高手们?

解决方案 »

  1.   

    using System;
    using System.ComponentModel;
    using System.Windows.Forms;
     
    namespace WindowsApplication5
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            //<!--html 文件代码示例-->
            //<HTML> 
            // <BODY>
            //  <input type=button id='a' value="ss" onclick="alert('jinjazz')">
            // </BODY>
            //</HTML>
            
            private void Form1_Load(object sender, EventArgs e)
            {
                this.webBrowser1.Navigate("file:///C:/Documents%20and%20Settings/Administrator/Local%20Settings/Temp/non299.htm");
                this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
            }        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                this.webBrowser1.Document.GetElementById("a").Click += new HtmlElementEventHandler(Form1_Click);
            }        void Form1_Click(object sender, HtmlElementEventArgs e)
            {
                MessageBox.Show("jinjazz pass");
            }
           
            
        }
    }
      

  2.   

    我操作不了啊,把Form1的代码全贴出来好 吗?
      

  3.   

    测试如下代码,在点击google搜索的按钮会弹出对话框
    using System;
    using System.ComponentModel;
    using System.Windows.Forms;namespace WindowsApplication5
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
                   private void Form1_Load(object sender, EventArgs e)
            {
                this.webBrowser1.Navigate("www.google.cn");
                this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
            }        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                if (e.Url.ToString() != this.webBrowser1.Url.ToString()) return;
               foreach(System.Windows.Forms.HtmlElement el in  this.webBrowser1.Document.GetElementsByTagName("input"))
               {
                   if (el.Name == "btnG")
                   {
                       el.Click += new HtmlElementEventHandler(Form1_Click);
                   }
               }
                
            }        void Form1_Click(object sender, HtmlElementEventArgs e)
            {
                MessageBox.Show("jinjazz pass");
            }
        }
    }
      

  4.   

    using mshtml;
    接楼上
    把webBrowser1.Document.GetElementById改成webBrowser1.Document.DomDucument.GetElementById试一下。
      

  5.   

    .net 1.1的好像不行啊
    你有.net 1.1的吗?
      

  6.   

    1.1需要用mshtml单元,我没有测试环境但是代码很相似
      

  7.   

    microsoft visual 2003   .net 1.1 能实现吗?好像你们的代码是.net 2.0的啊!
    我需要.net 1.1 的啊
      

  8.   

    搞不定啊!谁会.net 1.1啊?教教我吧!
      

  9.   

    见我博客:http://1hui2.cn
    先利用浏览器控件的一个事件,然后调用你的函数。
    这个事件可以是TextChange等等