/******************************
* 说明:管理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)
{
}
}
}
}
}
}
}