/// <summary>
        /// Display a SplashScreen
        /// </summary>
        /// <param name="firstForm"></param>
        /// <param name="appName"></param>
        /// <param name="appCopyright"></param>
        /// <param name="logo"></param>
        public static void DisplaySplashScreen(Form firstForm, string appName, string appCopyright, Image logo)
        {
            //view loading splash screen
            AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(SetSpashScreenStatus);
            DGUIGHFFormSplashScreen.ShowSplashScreen(appName, appCopyright, logo);
            Application.DoEvents();
            AppDomain.CurrentDomain.AssemblyLoad -= SetSpashScreenStatus;
            DGUIGHFFormSplashScreen.SetStatus("Building UI and Opening DB Connections");

            //show this screen at least 500ms
            Thread.Sleep(500);

            //attach the event to the first form displaied to close the splash screen
            firstForm.Activated += new System.EventHandler(FirstForm_Activated);
        }
 /// <summary>
 /// Set SplashScreen Status
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private static void SetSpashScreenStatus(object sender, AssemblyLoadEventArgs e)
 {
     DGUIGHFFormSplashScreen.SetStatus(e.LoadedAssembly.GetName().Name);
 }