129 lines
3.6 KiB
C#
129 lines
3.6 KiB
C#
/******************************
|
|
* 说明:管理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;
|
|
|
|
/// <summary>
|
|
/// 等待窗口对象
|
|
/// </summary>
|
|
public static SplashScreenManager LoadForm
|
|
{
|
|
get
|
|
{
|
|
lock (_syncRoot)
|
|
{
|
|
if (_loadForm == null)
|
|
{
|
|
SplashFormProperties properties = new SplashFormProperties();
|
|
_loadForm = new SplashScreenManager(typeof(FrmSplashScreen), properties);
|
|
}
|
|
return _loadForm;
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:显示等待窗体</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-08-12 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
public static void ShowForm()
|
|
{
|
|
try
|
|
{
|
|
lock (_syncRoot)
|
|
{
|
|
if (!_isShown || _loadForm == null)
|
|
{
|
|
SplashScreenManager manager = LoadForm;
|
|
_isShown = manager != null;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
lock (_syncRoot)
|
|
{
|
|
_isShown = false;
|
|
}
|
|
throw;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:关闭等待窗体</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-08-11 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
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)
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|