none
关于在Winfrom中获取IE页面按钮事件的问题求教 RRS feed

  • 问题

  • 本人新手,这段时间在做一个后台打印程序,流程是这样的,打开程序 -自动登陆网页-网页上点击“打印”按钮—获取网页表格数据-打印

    打印按钮的源码如下

    <div class="tbBtn">
                     <input type="image" name="ctl00$CP1$cmdPrint" id="ctl00_CP1_cmdPrint" src="../../Images/Public/plane/print.gif" onclick="return cmdPrint_onclick();" style="border-width:0px;" />
                 </div>

    现在登陆网页、获取数据,打印的程序都可以用了,就是这个打印按钮事件的事情一直处理不掉,请高手帮忙。

    本人用vb.net谢谢

    2014年10月18日 5:37

答案

  • 你好:

    尝试一下给Document对象注册鼠标点击事件,以下代码可以执行:

    private void Form1_Load(object sender, EventArgs e)
            {
                webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
                webBrowser1.Navigate("http://www.microsoft.com");
            }
    
            private void webBrowser1_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown);
            }
    
            void Body_MouseDown(Object sender, HtmlElementEventArgs e)
            {
                switch(e.MouseButtonsPressed)
                {
                    case MouseButtons.Left:
                        HtmlElement element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
                        if(element != null)
                        {
                            MessageBox.Show(element.TagName);
                        }
                    break;
                }
            }

    或者使用这篇文章中的方法,给需要注册点击事件的html元素逐个注册事件:

    WebBrowser Element Events and Values

    我用的是C#代码,VB.NET代码没有什么差别。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2014年10月20日 8:38
    版主

全部回复

  • 你好:

    尝试一下给Document对象注册鼠标点击事件,以下代码可以执行:

    private void Form1_Load(object sender, EventArgs e)
            {
                webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
                webBrowser1.Navigate("http://www.microsoft.com");
            }
    
            private void webBrowser1_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown);
            }
    
            void Body_MouseDown(Object sender, HtmlElementEventArgs e)
            {
                switch(e.MouseButtonsPressed)
                {
                    case MouseButtons.Left:
                        HtmlElement element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
                        if(element != null)
                        {
                            MessageBox.Show(element.TagName);
                        }
                    break;
                }
            }

    或者使用这篇文章中的方法,给需要注册点击事件的html元素逐个注册事件:

    WebBrowser Element Events and Values

    我用的是C#代码,VB.NET代码没有什么差别。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2014年10月20日 8:38
    版主
  • 你好:

    尝试一下给Document对象注册鼠标点击事件,以下代码可以执行:

    private void Form1_Load(object sender, EventArgs e)
            {
                webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
                webBrowser1.Navigate("http://www.microsoft.com");
            }
    
            private void webBrowser1_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown);
            }
    
            void Body_MouseDown(Object sender, HtmlElementEventArgs e)
            {
                switch(e.MouseButtonsPressed)
                {
                    case MouseButtons.Left:
                        HtmlElement element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
                        if(element != null)
                        {
                            MessageBox.Show(element.TagName);
                        }
                    break;
                }
            }

    或者使用这篇文章中的方法,给需要注册点击事件的html元素逐个注册事件:

    WebBrowser Element Events and Values

    我用的是C#代码,VB.NET代码没有什么差别。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    在VB.net中,你的代码

     webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
                webBrowser1.Navigate(http://www.microsoft.com);

    不能被支持……

    2014年11月11日 4:57
  • 谢谢你的回复,虽然您的回复没有直接解决问题,但给我提供了处理的新思路。谢谢……
    2014年11月11日 5:01