4

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

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

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

例如,假设我有一个这样的链接当我单击它时,我希望应用程序显示一个特定的表单,就像 Outlook 在您单击超链接时所做的那样People and Distribution List

4

2 回答 2

9

这看起来很有用:如何:在 DHTML 代码和客户端应用程序代码之间实现双向通信

于 2009-05-19T01:21:15.293 回答
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 的问题打开一个属性对话框。

于 2009-05-19T01:27:34.437 回答