// A private entry point for the thread. private static void ShowForm() { ms_frmSplash = new SplashScreen(); //ms_frmSplash.Owner = ms_ParentForm; Application.Run(ms_frmSplash); //ms_frmSplash.Show(); //Application.DoEvents(); }
// A static method to close the SplashScreen public static void CloseForm() { if( ms_frmSplash != null && ms_frmSplash.IsDisposed == false ) { // Make it start going away. ms_frmSplash.m_dblOpacityIncrement = - ms_frmSplash.m_dblOpacityDecrement; } // SS: Ensure the correct main form comes to the fore when the splash screen // finally fades away. Do it here to avoid cross-threading error. I tried doing // this on creation of the instance, but for some reason, the splash screen // doesn't show up in that case. Doing it here just works. //ms_frmSplash.Owner = ms_ParentForm; ms_oThread = null; // we don't need these any more. ms_frmSplash = null; }