VB.NET Funktionsaufruf nach dem Programmstart?

KAEPS133

Freizeitschrauber(in)
Hallo,

ich habe mit VB.Net recht schnell ein kleines Programm zusammen geschrieben das als neben einigen Einstellungen für Variablen etc auch einen Browser integriert hat der immer die passenden Daten zu dem aktuellen 'Projekt' anzeigen soll. Das Programm wird über mehrere Parameter gestartet und erstellt sich aus diesen Informationen dann den passenden Link für den Browser. Ich muss aber nach dem Programmstart einen eigens erstellten Home-Button drücken das die Seite geladen wird, ich möchte aber das beim Programmstart direkt die Seite geladen wird.

Ich habe dann folgendes Versucht:
Code:
Dim Browser.Navigate(Path)
Dabei kommt aber die Fehlermeldung das ein 'end of' fehlt ?!

Dann habe ich ja auch noch die Sub für den Button, ich weiß aber nicht wie ich diese direkt nach Programmstart aufrufen kann.
Code:
Private Sub HomeBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HomeBtn.Click
        Browser.Navigate(Path)
    End Sub

VB.Net ist irgendwie eine echt merkwürdige Sprache. Wenn mir da jemand kurz einen Tipp geben könnte wäre das echt super!

Vielen Dank!
 
Code:
'Declaration
    Public Event Shown As EventHandler

    Private Sub Form1_Shown(ByVal sender As Object, ByVal e As EventArgs) _
     Handles Me.Shown
        Browser.Navigate(Path)
    End Sub

So hab ich das jetzt mal eingefügt, es tut sich aber leider nichts o_0
 
Zuletzt bearbeitet:
Welche VB .Net Version ist denn das? Wird die Funktion überhaupt aufgerufen (Debugger nutzen)?
Der vom Designer generierte Code sieht bei mir nämlich anders aus:
Code:
Private Sub Form1_Shown(sender As System.Object, e As System.EventArgs) Handles MyBase.Shown

End Sub
Dein Code sieht mir danach aus, als hättest du das Event vorher angelegt (Public Event Shown As EventHandler), das wäre aber falsch. Das Event ist nämlich bereits in der Form-Basisklasse definiert (Mybase.Shown). Alternativ könntest du auch die OnShown-Methode überladen überschreiben, du müsstest dann aber aus dieser noch die Methode der Basisklasse aufrufen.
 
Zuletzt bearbeitet:
Hier mal eine Kurzanleitung, wie du ein Event nutzen kannst:
RgIUgsb.png

Dadurch wird automatisch eine neue Sub-Prozedur erstellt und beim gewünschten Event registriert. In die neue Sub-Prozedur kannst du dann deinen eigenen Code schreiben.

Alternativ, wie bingo88 schon erwähnt hat, kannst du einfach die entsprechende "On"-Sub-Prozedur überschreiben.
Code:
Protected Overrides Sub OnLoad(ByVal e As EventArgs)
    MyBase.OnLoad(e)
    [b]Browser.Navigate(Path)[/b]
End Sub
 
Zuletzt bearbeitet:
Ich habs jetzt ein wenig anders gelöst bekommen. Wenn ich in diesem Layout Designer auf die Form doppelklicke erzeugt der direkt eine Sub die beim Programmstart ausgeführt wird und dort lasse ich den Browser dann zum vorgegebenen Pfad wechseln.

Irgendwie ist der Syntax echt merkwürdig und die Dokumentation von MS war auch nicht so besonders Hilfreich. Aber naja es funktioniert jetzt und danke für die Hilfe!
 
Das Ergebnis meiner Kurzanleitung wäre das gleiche gewesen, mit dem Unterschied, dass du hier gezielt ein Event auswählen kannst. Bei einem Doppelklick auf ein Element im Designer wird automatisch das Standard-Event für den jeweiligen Elementtyp gewählt. Im Fall von Form-Elementen wäre das eben das Load-Event.

Die Syntax ist grauenhaft und ich rate jedem dringend davon ab, sich VB anzutun. Erst recht, wo doch C# um die Ecke wartet.

Was du an der Dokumentation auszusetzen hast, verstehe ich nicht. Die MSDN-Library ist, meiner Meinung nach, recht gut. Wenn man allerdings ohne jedes Vorwissen mal eben anfängt sich ein Programm zusammenzuklicken, führt das zwangsläufig irgendwann zu Schwierigkeiten.
 
Ja das war ja mehr oder weniger ein Test. Da es jetzt funktioniert hat kann ich mich auf eine bessere Lösung konzentrieren.
 
Zurück