2009-05-19 8 views
4

Ich habe es gegooglet, aber kam leer aus. Und das Schlimmste ist, dass ich weiß, dass es möglich ist.Wie steuert man die Anwendung von WebBrowser Control?

Wie auch immer, ich entwickle eine Anwendung, die das WebBrowser Steuerelement verwendet, um Informationen zu einem Objekt anzuzeigen (wie Outlook mit dem Dialogfeld Regeln und Warnungen).

Meine Frage ist, wie mache ich für den Klick auf eine, sagen wir, Hyperlink in der WebBrowser führen Sie eine Funktion innerhalb der Windows Form?

Zum Beispiel sagen, ich habe einen Link wie this und wenn ich es klicken mag ich die Anwendung eine spezifische Form angezeigt werden, wie das Outlook tut, wenn Sie auf Hyperlinks klicken wie People and Distribution List

Antwort

8

ChrisW Antwort wird funktionieren, aber es gibt einen anderen Weg, wenn Sie nur auf Hyperlinks angewiesen sind.

In Comicster, ich habe Links in meinem WebBrowser-Steuerelement wie folgt aus:

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

und dann in der Navigating Veranstaltung WebBrowser, ich einige Code haben zu überprüfen, ob der Benutzer auf eine „Aktion zu navigieren hat versucht: "-Link, und es abfangen:

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 
    } 
} 

Mit einem wenig Code Sie können auch die URL-Parameter analysieren und‚gibt ihnen durch‘, um Ihre Host-Anwendung der Aktion, so kann ich Dinge wie:

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

... die einen Eigenschaftendialog für das Problem mit der ID öffnen 1.

+0

Ist dieser Weg aus irgendeinem Grund vorzuziehen? – ChrisW

+1

Ich benutze diese Methode, weil ich Endbenutzer habe, die grundlegendes HTML kennen, aber kein Javascript, und ich lasse sie ihre eigenen "Skins" erstellen. Auf diese Weise müssen sie nur die Aktionsnamen für ihre Links kennen. –