/****************************** * 说明:管理SplashScreenForm界面 * 创建人:龚宇超 * 创建日期:2017-08-08 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using DevExpress.XtraSplashScreen; using Lskj.Data; namespace Lskj.Control.Model { public static class SplashForm { private static SplashScreenManager _loadForm; private static readonly object _syncRoot = new object(); // FrmSplashScreen 继承 SplashScreen,创建 SplashScreenManager 时会自动显示。 private static bool _isShown; /// /// 等待窗口对象 /// public static SplashScreenManager LoadForm { get { lock (_syncRoot) { if (_loadForm == null) { SplashFormProperties properties = new SplashFormProperties(); _loadForm = new SplashScreenManager(typeof(FrmSplashScreen), properties); } return _loadForm; } } } /// /// 说明:显示等待窗体 /// 创建人:龚宇超 /// 创建日期:2017-08-12 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static void ShowForm() { try { lock (_syncRoot) { if (!_isShown || _loadForm == null) { SplashScreenManager manager = LoadForm; _isShown = manager != null; } } } catch (Exception) { lock (_syncRoot) { _isShown = false; } throw; } } /// /// 说明:关闭等待窗体 /// 创建人:龚宇超 /// 创建日期:2017-08-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public static void HideForm() { try { lock (_syncRoot) { if (_loadForm == null || !_isShown) { return; } _loadForm.CloseWaitForm(); _loadForm.WaitForSplashFormClose(); _isShown = false; } } catch (Exception ex) { lock (_syncRoot) { _isShown = false; } } finally { lock (_syncRoot) { SplashScreenManager manager = _loadForm; _loadForm = null; if (manager != null) { try { manager.Dispose(); } catch (Exception) { } } } } } } }