如何从WebBrowser Control控制应用程序?

时间:2009-05-19 01:08:03

标签: browser webbrowser-control

我用谷歌搜索了它,但是空出来了。最糟糕的是,我知道这是可能的。

无论如何,我正在开发一个使用WebBrowser控件来显示有关对象信息的应用程序(就像Outlook使用“规则和警报”对话框一样)。

我的问题是如何点击WebBrowser中的超链接,执行Windows窗体中的某些功能?

例如,假设我有一个类似this的链接,当我点击它时,我希望应用程序显示一个特定的表单,就像Outlook点击People and Distribution List

2 个答案:

答案 0 :(得分:9)

答案 1 :(得分:8)

ChrisW的回答是有效的,但如果您只是依赖超链接,还有另一种方法。

Comicster中,我的WebBrowser控件中有链接,如下所示:

<a href="action:FileNew">New Collection</a>

然后在WebBrowser的Navigating事件中,我有一些代码来检查用户是否尝试导航到“action:”链接,并拦截它:

private void webBrowser1_Navigating(object sender,
    WebBrowserNavigatingEventArgs e)
{
    if (e.Url.Scheme == "action")
    {
        e.Cancel = true;

        string actionName = e.Url.LocalPath;
        // do stuff when actionName == "FileNew" etc
    }
}

使用一点代码,您甚至可以解析URL参数并将其“传递”到主机应用程序的操作中,这样我就可以执行以下操作:

<a href="action:EditIssue?ID=1">Edit this issue</a>

...将打开ID为1的问题的属性对话框。