/// <summary> /// Shows the process panel. /// </summary> /// <param name="parent">The parent.</param> /// <param name="strMessage">The string message.</param> /// <param name="intSplashScreenDelayTime">The int splash screen delay time.</param> public static void ShowProcessPanel(Control parent, string strMessage, int intSplashScreenDelayTime = 0) { if (parent.InvokeRequired) { parent.BeginInvoke(new MethodInvoker(delegate { ShowProcessPanel(parent, strMessage, intSplashScreenDelayTime); })); } else { parent.VisibleChanged -= new EventHandler(parent_VisibleChanged); parent.VisibleChanged += new EventHandler(parent_VisibleChanged); parent.FindForm().FormClosing -= ControlHelper_FormClosing; parent.FindForm().FormClosing += ControlHelper_FormClosing; Control control = null; lock (parent) { control = HaveProcessPanelControl(parent); if (control == null) { control = CreateProgressPanel(); parent.Controls.Add(control); } } Forms.FrmWaiting frmWaitingEx = control.Tag as Forms.FrmWaiting; frmWaitingEx.Msg = strMessage; frmWaitingEx.ShowForm(intSplashScreenDelayTime); } }
/// <summary> /// Closes the waiting. /// </summary> /// <param name="control">The control.</param> private static void CloseWaiting(Control control) { Control[] array = control.Controls.Find("myprogressPanelext", false); if (array.Length > 0) { Control control2 = array[0]; if (control2.Tag != null && control2.Tag is Forms.FrmWaiting) { Forms.FrmWaiting frmWaitingEx = control2.Tag as Forms.FrmWaiting; if (frmWaitingEx != null && !frmWaitingEx.IsDisposed && frmWaitingEx.Visible) { frmWaitingEx.Hide(); } } } }