请问关于mshtml.IHTMLDocument3加onclick事件

请教关于mshtml.IHTMLDocument3加onclick事件
本帖最后由 CXL88688 于 2015-02-14 11:20:02 编辑
做一个页面数据采集打印的小程序。
 mshtml.IHTMLDocument3 eDoc3 = ie.Document as mshtml.IHTMLDocument3;
((mshtml.HTMLDocumentEvents2_Event)ieDoc3).onclick += new mshtml.HTMLDocumentEvents2_onclickEventHandler(Doc_onclick);
对IHTMLDocument3添加onclick后,程序运行时发现页面鼠标左右键不能正常响应。页面的input标签也无法输入任何值。
度娘很久发现很多朋友也遇到这个问题?有的说obj.returnValue = true造成的。有的说是页面兼容性造成的。都尝试过无法解决。
大家是怎么处理这个问题的?----------------麻烦大家帮帮忙这个问题弄好几天了,快愁死了。请问关于mshtml.IHTMLDocument3加onclick事件

请问关于mshtml.IHTMLDocument3加onclick事件提前预祝****的各位朋友新年快乐请问关于mshtml.IHTMLDocument3加onclick事件
------解决思路----------------------
请问关于mshtml.IHTMLDocument3加onclick事件
你上面那样写,他的导至事件的先优权被你注册的方法解捕获,HTML控件无法触发相应的事件,

要像下面要这样,先让HTML先捕获到事件,然后再让其路由到你注册的事件



    [ComVisible(true)] 
    public class HTMLEventHandler
    {
        public  HTMLEvent OnHandler;
        private HTMLDocument Document;

        public HTMLEventHandler(HTMLDocument doc)
        {
            this.Document = doc;
        }

        [DispId(0)]
        public void Call()
        {

            if (System.Windows.Forms.Application.OpenForms.Count > 0)
            {
                System.Windows.Forms.Form frm = System.Windows.Forms.Application.OpenForms.Cast<System.Windows.Forms.Form>().First();
                if (frm.InvokeRequired)
                {
                    frm.Invoke(new Action(() =>
                    {
                        OnHandler(Document.parentWindow.@event);
                    }));
                }
            }
            
        }
    }



           m_objDoc = (HTMLDocument)ie.Document;
            m_DispHTMLDoc = (DispHTMLDocument)m_objDoc;
            HTMLEventHandler Handler = new HTMLEventHandler(m_objDoc);
            Handler.OnHandler += new HTMLEvent(this.m_objEvent_onclick);
            m_DispHTMLDoc.onclick = Handler;


          void m_objEvent_onclick(IHTMLEventObj pEvtObj)
          {

          }