c# – Web浏览器控件:如何捕获文档事件?

前端之家收集整理的这篇文章主要介绍了c# – Web浏览器控件:如何捕获文档事件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 WPF的WebBrowser控件来加载一个简单的网页.在这个页面上,我有一个锚点或按钮.我想捕获应用程序代码中的该按钮的点击事件(即在C#中).

WebBrowser控件是否有一种方法来捕获加载的页面元素上的点击事件?@H_301_3@

另外,是否可以在页面和WebBrowser之间传送事件触发的数据?所有上述都应该是可能的我是对的吗?@H_301_3@

>编辑:可能的解决方案:@H_301_3@

我发现以下链接可能是一个解决方案.我还没有测试过,但值得一试.将根据我的测试结果更新此问题.@H_301_3@

http://support.microsoft.com/kb/312777@H_301_3@

>链接取自:Source@H_301_3@

解决方法

确定答案发现 – 测试,它的工作原理:

>从名为“Microsoft HTML对象库”的COM选项卡添加引用@H_301_3@

以下是一个示例代码:@H_301_3@

您将需要两个组件:WebBrowser(webBrowser1)和一个TextBox(textBox1)@H_301_3@

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        webBrowser1.LoadCompleted += new LoadCompletedEventHandler(webBrowser1_LoadCompleted);
    }

    private void webBrowser1_LoadCompleted(object sender,NavigationEventArgs e)
    {
        mshtml.HTMLDocument doc;
        doc = (mshtml.HTMLDocument)webBrowser1.Document;
        mshtml.HTMLDocumentEvents2_Event iEvent;
        iEvent = (mshtml.HTMLDocumentEvents2_Event)doc;
        iEvent.onclick += new mshtml.HTMLDocumentEvents2_onclickEventHandler(ClickEventHandler);
    }

    private bool ClickEventHandler(mshtml.IHTMLEventObj e)
    {
        textBox1.Text = "Item Clicked";
        return true;
    }
}

猜你在找的C#相关文章