最近闲下来,准备看看优化一下公司的旧系统,首先应用打开时没有启动等待画面,如果初始化应用时间过长会让用户认为没有启动成功,所以启动画面是很有必要的,先弄这个吧。
很多文章都对DevExpress的SplashScreenManager控件进行详细的应用实例介绍,我就不再介绍这个控件了,具体文章可以查看这两个文章:
SplashScreenManager控件介绍
SplashScreen和WaitForm使用
还有一种更简单的方式来创建一个启动画面(如果不需要加载进度条展示的话),只需要新建一个Form窗体FormSplashScreen,将窗体属性FormborderStyle设为None,设置BackgroundImage背景图为欢迎界面图。
然后在主界面的构造函数中创建FormSplashScreen实例并展示,然后在应用初始化加载结束后关闭这个画面即可,足够简单和实用。代码如下:
//程序开启时等待界面
FormSplashScreen formSplashScreen = null;
public FormMain()
{
//时间格式化解决iis时间格式问题
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN", true)
{ DateTimeFormat = { ShortDatePattern = "yyyy-MM-dd", FullDateTimePattern = "yyyy-MM-dd HH:mm:ss", LongTimePattern = "HH:mm:ss" } };
//系统配置初始化
InitializeComponent();
//展示启动画面
//this.WindowState = FormWindowState.Minimized; //将主界面的边框尺寸设置为最小
formSplashScreen = new FormSplashScreen();
formSplashScreen.Show();
#region 应用初始化准备 例如:
//定义服务端启动后窗口所在位置
StartPosition = FormStartPosition.CenterScreen;
//关闭对文本框的非线程操作检查
TextBox.CheckForIllegalCrossThreadCalls = false;
//判断数据库是否可连接:解决数据库连不上时点击软件没有反应的情况
if (!netDataCtrlBLL.SqlConnect())
{
//数据库连接不上时,给出提示
MessageBox.Show("数据库无法连接,请检查配置信息和数据库是否存在!", "初始化错误信息提示");
formSplashScreen.Dispose();
this.Dispose();
}
LogHelper.WriteLog("*********系统初始化时数据库连接成功**********");
//系统初始化时进行历史数据备份
//设定定时器
setTaskAtFixedTime();
try
{
netDataCtrlBLL.byteDataInsertH();
LogHelper.WriteLog("*********系统初始化时历史数据备份成功**********");
}
catch(Exception ex)
{
MessageBox.Show("历史数据备份失败!错误原因: " + ex.Message, "错误信息提示");
LogHelper.WriteLog("*********历史数据备份失败!错误原因: " + ex.Message +"*********");
}
#endregion
formSplashScreen.Dispose();
formSplashScreen.Close();
//this.WindowState = FormWindowState.Normal; //展示主界面
}
完成。