WindowsForm per Link aus WebBrowser-Control öffnen

Immi

Mitglied
Hallo!

ich hab eine Frage, bei der Ihr mir hoffentlich helfen könnt :)

Ich hab in einer Form ein WebBrowser-Control. In diesem Control werden Hilfe-Texte oder Tipps angezeigt. Nun möchte ich per Link aus dem WebBrowser-Control direkt zu den betreffenden Form's wechseln.

Nun hab ich mich irgendwie festgecoded und wollte mal fragen, wie Ihr das ganze angehen würdet? :)

Besten Dank bereits!

lg Immi
 

RudolfG

Erfahrenes Mitglied
Ich hab in einer Form ein WebBrowser-Control. In diesem Control werden Hilfe-Texte oder Tipps angezeigt. Nun möchte ich per Link aus dem WebBrowser-Control direkt zu den betreffenden Form's wechseln.

Also, dass verstehe ich nicht ganz. Du bist in der Hilfe, möchtest dann aber durch Links direkt in die jeweiligen Dialoge springen? Wenn ja: Wozu brauchst du den sowas?

Gruß
RudolfG
 

Immi

Mitglied
Hallo RudolfG!

Nicht ganz, es ist nicht eine klassische Hilfe. Du kannst es dir eher wie ein "Tipp des Tages" vorstellen, den es bei diversen Programmen gibt.

Ein Beispiel: Der User durchläuft einen gewissen Prozess im Programm und am Schluss soll er noch an verschiedene Dinge erinnert werden, die er noch erledigen muss.

Nun hab ich eine Form gemacht die wie eine Art Popup eingeblendet werden kann und diese Info's stehen in dem WebBrowser-Control, das sich auf dieser Form befindet. Soweit so gut. Nun sollen in den Hinweis-Texten allerdings gleich Links zu den Form's dargestellt werden, wo diese Sachen noch erledigt werden müssen um dem User den Weg über die Menü's zu ersparen und das Programm noch Benutzerfreundlicher zu machen.

Hmm.. hoffe hab mich verständlich ausgedrückt? :)

lg Immi
 

Immi

Mitglied
Hallo Shakie!

Besten Dank für deine Antwort. Dein Vorschlag tönt gut, doch sind noch einige Fragen offen.. Nehmen wir an, ich übergebe als Pseudo-Link den Namespace und den Formnamen der zu öffnenden Form. Dies kann ich ja dann easy im Navigating-Event abfangen und auslesen. Nur.. wie kann ich aus dem String die Info's so auslesen, damit ich nachher die gewünschte Form öffnen kann?

Irgendwie blockierts hier bei mir :)

lg Immi
 

Shakie

Erfahrenes Mitglied
Um wie viele Formen handelt es sich denn? Wenn es nur ein paar sind, dann kannst du ja eine Case-Abfrage machen.
Sonst stellt sich noch eine Frage: Existieren die anzuzeigenden Formen schon als Instanz oder willst du neue instanziieren?
Wenn du neue Formen instanziieren willst und du den Namespace inklusive Formnamen (= voll gekennzeichneter Typname) übergibst, dann könntest du über Reflection eine neue Instanz erzeugen.
Wenn du auf bereits existierende Formen zugreifen willst, dann könntest du diese alle in einem Dictionary sammeln. Als Key verwendest du den Typnamen und als Value die Instanz der Form.
Typnamen von instanziierten Objekten kannst du so herausfinden:
Code:
Dim meineForm As New Form
Dim FullName As String = meineForm.GetType.FullName
 

Immi

Mitglied
Hallo shakie

ok - Dat mit den Links hat perfekt geklappt so - hab's, wie du gesagt hast, per Case-Abfrage realisiert.

Nun hab ich aber noch ein weiteres kleines Problem, welches wahrscheinlich einfach mit meiner Unkenntnis mit dem WebBrowser Control zusammenhängt..

Wenn nun beim Start der Applikation die InfoBox geöffnet wird, wird meine Info zwar gesetzt mit:

this.wbInfo.DocumentText = sDocumentText; //sDocumentText ist mit folgendem gefüllt: <html><body><div style="font-size:12.25; font-family:Microsoft Sans Serif">Offene Planungs-Daten</div></body></html>

nach dem Aufruf ist wbInfo.DocumentText aber mit <HTML></HTML> gefüllt..

Ich hab bei meiner InfoBox oben eine ToolBar mit Vor- und zurück Button's, da ich mehrere Meldungen anzeigen lassen möchte. Wenn ich nun da zwischen zwei Meldungen hin- und her navigiere, wird der DocumentText richtig gesetzt..

Muss ich noch irgendeine Eigenschaft aufrufen oder ein Event abfangen, damit es beim ersten mal bereits gesetzt wird?

Edit: Hab die Lösung hier gefunden: http://geekswithblogs.net/paulwhitblog/archive/2005/12/12/62961.aspx
 
Zuletzt bearbeitet: