none
Exception nach Begrüßungsbildschirm RRS feed

  • Frage

  • Hallo zusammen,

    ich habe eine Frage bezügl. des Begrüßungsbildschirm in VB. Ich nutze die Express-Version und habe damit schon mehrere Projekte erstellt. In all diesen Projekten benutze ich einen Begrüßungsbildschirm, den ich unter Prjekt-Eigenschaften->Awendung->Begrüßungsbildschirm eingetragen habe. Zusätzlich habe ich noch foglendes Anwendungsereignis defineirt:

    Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean
       'Anzeigedauer des Splashscreens auf eine beliebige Zeit setzen, 
       'in diesem Beispiel auf 10 Sekunden. 
       Me.MinimumSplashScreenDisplayTime = 3000
       Return MyBase.OnInitialize(commandLineArgs)
    End Function

    Nun kommt es aber ab und zu vor, dass ich nach dem Begrüßungsbildschirm eine Exception "Invoke oder BeginInvoke kann für das Steuerelement erst aufgerufen werden, wenn das Fensterhandle erstellt wurde." bekomme.

    Woran liegt das?

    Mit freundlichen Grüßen

    Stefan Hogg

    Montag, 23. April 2012 11:04

Antworten

Alle Antworten

  • Hat keiner eine Idee, woran das liegen könnte?
    Donnerstag, 26. April 2012 10:47
  • Hat keiner eine Idee, woran das liegen könnte?

    Hallo Stefan,

    schau mal in diesen thread. Das scheint eine Lösung zu sein.

    http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/40a514c1-3ebf-4049-94c1-34a3ef4efb9b

    Gruss Ellen

    P.S. habe es gerade getestet: perfekt!


    Ich benutze/ I'm using VB2008 & VB2010


    • Bearbeitet Ellen Ramcke Donnerstag, 26. April 2012 10:58
    • Als Antwort markiert hoggste Donnerstag, 26. April 2012 12:12
    Donnerstag, 26. April 2012 10:54
  • Hallo Ellen,

    genau das war's.

    Hab den Begrüßungsbildschirm aus den Projekt-Eigenschaften raus geworfen und ruf ihn in der Load-Sub meiner Main auf:

    Dim splashScreen As New frmSplash
    
    splashScreen.Show()
    Application.DoEvents()
    Threading.Thread.Sleep(3000)
    splashScreen.Close()
    splashScreen.Dispose()

    Donnerstag, 26. April 2012 12:12
  • Hallo Stefan,

    ich habe die andere Variante getestet. Im Splashscreen Code Fenster Public Sub New eingeben. Dann kommt folgender code automatisch und die erste code Zeile manuell eingeben.

    Gruss Ellen

    Public Sub New()

    My.Application.MinimumSplashScreenDisplayTime = 10000' This call is required by the Windows Form Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. End Sub


     


    Ich benutze/ I'm using VB2008 & VB2010


    Donnerstag, 26. April 2012 15:01