Das mag unglaublich dumm klingen, aber ich kann nicht herausfinden, ob:
Ich denke lieber, dass es Letzteres ist.
Ich habe ein Webbrowser-Steuerelement in einem WinForms-Benutzersteuerelement. Es wurde dem Steuerelement zur Entwurfszeit hinzugefügt, und theoretisch sollte es im Load-Ereignis des Steuerelements zu Google navigieren.
Scheint einfach.
Allerdings.
%Vor%Das funktioniert nicht. Kein Fehler, nur nichts. Das Einfügen einer Haltepunkt- / Debugzeile zeigt mir, dass das Load-Ereignis nicht einmal aufgerufen wird.
Ich habe an dieser Stelle entschieden, dass das Load-Ereignis in der Datei Designer.cs korrekt eingestellt ist.
%Vor%Scheint echt.
Wenn ich das Webbrowser-Steuerelement aus dem Formular lösche, wird das load -Ereignis ausgelöst.
Ich verstehe dieses eine Bit nicht, wie kann eine Steuerung eine Methode verhindern, die sie überhaupt benutzt?
Weiter ging es mir: Ссылка
TL; DR für den Link ist wie folgt: "Laden funktioniert nicht, wenn Sie einen Webbrowser in dem Formular haben, das auf Sichtbar = True"
festgelegt istWenn ich die Standardsichtbarkeit des Webbrowsers auf "false" ändere, wird das load -Ereignis des Steuerelements sicher ausgelöst. Ich kann das Problem umgehen, indem ich die Sichtbarkeit des Browsers im Load-Ereignis festlege.
%Vor%Sehr seltsam.
Während diese "Reparatur" funktioniert, finde ich es unglaublich hacky und fragte mich, ob jemand eine Erklärung für dieses Verhalten hat?
Erstaunlicherweise habe ich diesen Bug in MS Connect gefunden, der von 2005 übrig geblieben ist - Ссылка
Aus der Diskussion in der Verbinde Fehler mit dem du verlinkt hast:
Wenn Sie jetzt das Load-Ereignis auslösen möchten, können Sie die URL-Eigenschaft des WebBrowser-Steuerelements im Eigenschaftenraster festlegen. Die URL kann alles sein, was Sie wollen, sogar über: leer, wenn Sie nicht wollen, dass sie mit einer geladenen Seite beginnt.
Also, wenn Sie in den Designer gehen und setzen Sie die WebBrowser
s Url
Eigenschaft für die Zeichenkette about:blank
(die WebBrowser
anweist, eine leere Seite zu laden), dann sollte Ihr Benutzersteuerelement sein Load
-Ereignis erneut erhalten.
Tags und Links c# winforms events webbrowser-control