Hallo,
.Net klassen wie auch Forms (egal ob in VB - und übrigens hat das über-
haupt nichts mit VBS zu tun) bieten oft Events and, auf die man einee
Callback Methode setzen kann.
Forms haben z.b. Events wie Load, Closing, Closed. Hinter diesen Events
verstecken sich Delegates mit bestimmten Signaturen. Diese Signaturen müssen von den Callback Methoden implementiert werden und sind häufig
in der Form
EventDelegate(ByVal sender as object, ByVal e as System.EventArgs)
Eine Callback-Methode muss dann also ebensolch eine Signatur haben
Private Sub FormLoadCallback(ByVal sender as object,
ByVal e as System.EventArgs) Handles MyBase.Load
'your code
End Sub
Wichtig ist das "Handles MyBase.Load", wobei "MyBase" das VB-Keyword
für die System.Windows.Forms.Form Basisklasse ist wovon deine eigene
Fenster-Klasse abgeleitet ist. "Load" ist dabei der Event.
Jetzt zu deinem eigentlichen Problem: SplashScreens. Es ist sehr davon
abhängig, was du genau auf dem SplashScreen machen willst (z.b. einen
virtuellen Fortschrittsbalken anzeigen oder nur ein statisches Logo),
denn ein Splashscreen ist ebenso ein Formular wie dein eigenes Haupt-
Formular. Beide Fenster konkurrieren in der im Hintergrund laufenden
Instanz von System.Windows.Forms.Application mit ihren Messageloops,
wer wann was bearbeiten darf und können sich unter Umständen gegenseitig
blockieren mit ihren Messages wenn sie unstet in einem gemeinsamen
oder eigenen Threads herumvegetieren. (Sehr unschöner Effekt).
Den Splashscreen solltest du deshalb in einem separaten Thread von
der Main-Methode aus starten:
Dim T as new Thread(AddressOf SplashScreenShowMethode)
Private Shared Sub SplashScreenShowMethode()
SplashScreenWindow.ShowDialog 'oder ähnlich je nach Bedarf
End Sub
Die Kommunikation zwischen dem SplashScreen und dem Hauptfenster,
dass der SplashScreen auch wieder gekillt wird, wenn das Hauptfenster
geladen ist (Form_Load(...) Handles MyBase.Load) musst du dann selbst
asynchron mit BeginInvoke und Delegates threadsicher gewährleisten.
Du solltest dich also mit folgender Materie vertraut machen:
- Events und Delegates
- Multithreading / Thread-sichere Methodaufrufe
Hast du schon mal versucht bei Google nach: "VB.Net Splashscreen" gesucht, da kommt als 3. Ergebnis bei mir: http://www.pearson.ch/download/media/9783827320070_SP.pdf
Ciao, Frank