Как управлять приложением из WebBrowser Control? - PullRequest
4 голосов
/ 19 мая 2009

Я погуглил, но вышел пустым. И хуже всего то, что я знаю, что это возможно.

В любом случае, я разрабатываю приложение, которое использует элемент управления WebBrowser для отображения информации об объекте (как это делает Outlook в диалоговом окне «Правила и предупреждения»).

У меня вопрос, как мне сделать, чтобы, например, гиперссылка в WebBrowser выполняла какую-то функцию в форме Windows?

Например, скажем, у меня есть ссылка типа this , и когда я нажимаю на нее, я хочу, чтобы приложение отображало определенную форму, как в Outlook, когда вы нажимаете гиперссылки, такие как People and Distribution List

Ответы [ 2 ]

9 голосов
/ 19 мая 2009
8 голосов
/ 19 мая 2009

Ответ ChrisW будет работать, но есть и другой способ, если вы просто полагаетесь на гиперссылки.

В Comicster , у меня есть ссылки в моем элементе управления WebBrowser, как это:

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

А затем в событии Navigating WebBrowser у меня есть некоторый код, чтобы проверить, пытался ли пользователь перейти к ссылке «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>

..., который откроет диалоговое окно свойств для проблемы с идентификатором 1.

...