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

Pau*_*tos 4 browser webbrowser-control

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

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

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

例如,说我有像一个链接这样,当我点击它,我想显示的具体形式的应用程序,当你点击超链接一样像Outlook不People and Distribution List

Mat*_*ton 8

ChrisW的答案会起作用,但如果您只是依赖超链接,还有另一种方法.

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

<a href="action:FileNew">New Collection</a>
Run Code Online (Sandbox Code Playgroud)

然后在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
    }
}
Run Code Online (Sandbox Code Playgroud)

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

<a href="action:EditIssue?ID=1">Edit this issue</a>
Run Code Online (Sandbox Code Playgroud)

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