html onclick调用c,请问关于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造成的。有的说是页面兼容性造成的。都尝试过无法解决。

大家是怎么处理这个问题的?----------------麻烦大家帮帮忙这个问题弄好几天了,快愁死了。

121508168.gif

121508169.gif提前预祝csdn的各位朋友新年快乐

121508169.gif

------解决思路----------------------

121508170.gif

你上面那样写,他的导至事件的先优权被你注册的方法解捕获,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().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)

{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值