vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Controls · Sonstiges   |   VB-Versionen: VB4, VB5, VB614.02.02
WebBrowser-Control einfach weg?

Eines der wohl seltsamsten VB-Bugs - nach dem Anzeigen einer URL verschwindet das WebBrowser-Control von der Form!

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  21.240 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Wie lässt sich am einfachsten und am schnellsten eine Webseite in der eigenen Anwendung laden und anzeigen? Natürlich mit dem Microsoft WebBrowser-Control. Man plaziere dieses auf die Form und per Navigate-Methode lädt man die darzustellende Webseite.

Und jetzt kommt's!
Die Webseite, die geladen und angezeigt wird, enthält ein kleines JavaScript, welches versucht das aktuelle Browser-Fenster zu schliessen. Im Normalfall erhalten Sie hier eine entsprechende MsgBox mit dem Hinweis: "Die angezeigte Seite versucht, das Fenster zu schließen. Soll das Fenster geschlossen werden?". Zur Auswahl stehen "JA" und "NEIN". Wenn Sie nun auf "JA" klicken, was meinen Sie was passiert? Das WebBrowser-Control wird vollständig von Ihrer Form gelöscht und steht für den weiteren Programmablauf nicht mehr zur Verfügung. Was jetzt kommt? Klar, Fehler über Fehler, da Sie per Code versuchen auf die Eigenschaften und Methoden des WebBrowser-Controls zuzugreifen, dieses aber gar nicht mehr existsiert!

Sie glauben das nicht? Probieren Sie es aus!
Nehmen Sie eine Form, fügen Sie über Projekt - Komponenten das WebBrowser-Control hinzu (Microsoft Internet Controls) und plazieren dieses auf die Form. Jetzt noch einen CommandButton und folgenden Code:

' URL laden und anzeigen
Private Sub Command1_Click()
  WebBrowser1.Navigate "http://www.gizeh-online.de/"
End Sub

Starten Sie das Projekt, klicken auf den Button und es erscheint obiges Meldungsfenster mit der Frage, ob das Fenster geschlossen werden soll. Beantworten Sie die Frage mit "JA" - und schwups - das WebBrowser-Control ist weg - einfach verschwunden

Jetzt könnten Sie sich und natürlich den Anwendern Ihres Programms sagen: "Wenn solch eine Meldung kommt, bitte bitte nicht "JA" als Antwort wählen...

...oder Sie verhindern das ganze per Code

Keine MsgBox - kein verschwundenes WebBrowser-Controls
Wenn man sich einmal die Ereigniss-Prozeduren des WebBrowser-Controls näher anschaut, findet man u.a. das Ereignis WebBrowser1_WindowClosing. Dieses Ereignis wird immer dann ausgelöst, wenn eine Webseite versucht das Browser-Fenster zu schliessen. Setzt man nun den Parameter Cancel auf den Wert True, so erscheint weder eine MsgBox mit dem obigen Hinweis, noch wird das WebBrowser-Control von der Form gelöscht.

Private Sub WebBrowser1_WindowClosing( _
  ByVal IsChildWindow As Boolean, Cancel As Boolean)
 
  ' Hier wird verhindert, dass das Control von der
  ' Form gelöscht wird!
  Cancel = True
End Sub

Es ist schon manchmal eigenartig, was Einem im Laufe seiner VB-Programmier-Karriere so alles widerfährt
 

Dieser Tipp wurde bereits 21.240 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel