在我很早的WInform随笔《WinForm界面开发之"SplashScreen控件"》有介绍如何使用闪屏的处理操作,不过那种是普通WInform和DevExpress都适用的方案,如果是基于DevExpress,那么可以使用更简便的方式,就是本文介绍的在DevExpress程序中使用SplashScreenManager控件实现启动闪屏和等待信息窗口,这个SplashScreenManager很好的封装了日常WInform程序中用到的启动闪屏窗口和在耗时操作中进行等待提示的信息窗口,合理使用可以增加程序界面的友好交换。

1、SplashScreenManager控件的使用

这个控件一般人很少注意到,毕竟不是很常用,我们可以通过在控件工具箱里面进行搜索,找到后拖动到WInform窗口即可,如下界面所示。

然后在SplashScreenMananger控件的右上角上单击三角符号,利用连接按钮添加两个窗口,一个是启动界面的闪屏窗口,一个是等待界面窗口。

最后得到两个新建的界面,稍作调整就可以使用在程序中了。

2、SplashScreenManager控件的调用

上面我们通过控件手工添加的方式增加了两个界面窗体,如果需要在程序中使用,那么需要进行一定的代码调用处理。

例如我们在程序启动的时候,程序入口的代码修改如下。

其中启动闪屏窗口的代码就是

 //显示闪屏窗体
SplashScreenManager.ShowForm(typeof(FrmSplashScreen));
Thread.Sleep();

在主程序窗体中,我们加载完毕界面后,我们需要手工关闭闪屏窗体的显示,代码如下所示。

而在界面中,如果我们需要显示等待窗口,如在耗时的数据获取和更新操作上,我们可以提示用户等待一下,那么这个时候就应该做等待信息窗口的显示了,如下界面效果所示。

为了实现上面的操作,我们可以对这个窗口的调用做一些简单的初始化和封装处理,如下代码所示。

private SplashScreenManager _loadForm;
/// <summary>
/// 等待窗体管理对象
/// </summary>
protected SplashScreenManager LoadForm
{
get
{
if(_loadForm == null)
{
this._loadForm = new SplashScreenManager(this, typeof(FrmWaitForm), true, true);
this._loadForm.ClosingDelay = ;
}
return _loadForm;
}
}
/// <summary>
/// 显示等待窗体
/// </summary>
public void ShowMessage()
{
bool flag = !this.LoadForm.IsSplashFormVisible;
if (flag)
{
this.LoadForm.ShowWaitForm();
}
}
/// <summary>
/// 关闭等待窗体
/// </summary>
public void HideMessage()
{
bool isSplashFormVisible = this.LoadForm.IsSplashFormVisible;
if (isSplashFormVisible)
{
this.LoadForm.CloseWaitForm();
}
}

最后在数据更新的时候,我们调用上面的函数

这样就实现了两种界面效果的处理了:启动闪屏显示、数据操作的等待信息,这两个控件还可以在中间过程中调用更多的事件函数处理,如SendCommand等,从而实现更进一步的信息显示。

在DevExpress程序中使用SplashScreenManager控件实现启动闪屏和等待信息窗口的更多相关文章

  1. DevExpress21:SplashScreenManager控件实现启动闪屏和等待信息窗口

    DevExpress中SplashScreenManager这个控件的主要作用就是显示程序集加载之前的进度条显示和进行耗时操作时候的等待界面. 一.SplashScreenManager控件的使用 1 ...

  2. 在DevExpress程序中使用TeeList控件以及节点查询的处理

    在很多情况下,我们需要通过树列表进行数据的展示,如一些有层次关系的数据,通过有层级的展示,能够使用户更加直观查看和管理相关的数据.在一般Winform开发的情况下,可以使用微软的TreeView控件, ...

  3. 在WinForm应用程序中嵌入WPF控件

    我们知道,在WPF界面上添加WinForm的控件需要使用WindowsFormHost类.而在WinForm界面上添加WPF控件该如何做呢?有没有类似的类呢?明显是有的,ElementHost就是为了 ...

  4. 使用SplashScreenManager控件定制程序加载页面

    需要devexpress版本在12.0及以上才支持 https://www.cnblogs.com/wuhuacong/p/6112461.html 在DevExpress程序中使用SplashScr ...

  5. 如何在MFC对话框应用程序中使用ColorPicker控件

    在日常的应用程序开发中,当涉及到曲线绘制时,为了将多条不同类型的曲线区分开,常常需要将它们指定不同的颜色.今天在这里简单的记录一下,如何实现及使用ColorPicker控件.程序用到4个文件依次为:C ...

  6. C# WinForm程序中使用Unity3D控件 (转)

    https://www.cnblogs.com/cnxkey/articles/5394378.html 最近在自学Unity3D,打算使用这个时髦.流行.强大的游戏引擎开发一个三维业务展示系统,不过 ...

  7. 【转】Win32程序中调用ActiveX控件

    #include "stdafx.h" #include <iostream> #include <windows.h> #include <comd ...

  8. 如何向VS2010中插入ActiveX控件并且附带相应的类

    上两篇文章中我们已经讲述了ActiveX控件的一些相关知识,本文中,简单说明一下如何在我们自己的程序中使用ActiveX控件.(仍以我们上节课的例子为例) 我们打开VS2010编辑器,新建一个基于对话 ...

  9. Html页中使用OCX控件

    原文:http://blog.csdn.net/mouse8166/article/details/5515657 最近准备开发一个b/s架构的应用程序需要用到activeX控件,web服务器尚未进入 ...

随机推荐

  1. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

  2. PHP获取上个月最后一天的一个容易忽略的问题

    正常来说,PHP是有一个很方便的函数可以获取上个月时间的 strtotime (PHP 4, PHP 5, PHP 7) strtotime - 将任何英文文本的日期时间描述解析为 Unix 时间戳 ...

  3. c#比较两个数组的差异

    将DataTable中某一列数据直接转换成数组进行比较,使用的Linq,要引用命名空间using System.Linq; string[] arrRate = dtRate.AsEnumerable ...

  4. Ajax部分

    Ajax的概念 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指 ...

  5. Android Fragment 剖析

    1.Fragment如何产生?2.什么是Fragment Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后 ...

  6. git添加GitHub远程库

    已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作 首先,登陆GitHub, ...

  7. 项目自动化建构工具gradle 入门1——输出helloWorld

    先来一个简单的例子,4个步骤: 1.进入D:\work\gradle\java 目录  ,您电脑没这目录? 那辛苦自己一级一级建立起来吧 新建文件build.gradle,文件内容是: apply p ...

  8. Selenium的PO模式(Page Object Model)[python版]

     Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...

  9. BZOJ 3894: 文理分科 [最小割]

    3894: 文理分科 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 674  Solved: 392[Submit][Status][Discuss] ...

  10. 简易nginx TCP反向代理设置

    nginx从1.9.0开始支持TCP反向代理,之前只支持HTTP.这是我的系统示意图: 为何需要? 为什么需要反向代理?主要是: 负载均衡 方便管控 比如我现在要更新后端服务器,如果不用负载均衡的话, ...