SplashScreenManager控件:主要作用是显示在进行耗时操作时的等待界面;

位于 工具箱 -> Navigation & Layout(导航栏与布局类控件) 目录下;

在工具箱输入名称SplashScreenManager检索,然后直接拖拽到面板上便可使用;

SplashScreenManager控件整体属性描述:(选中SplashScreenManager控件实例,打开属性窗口)

蓝色为常用属性    红色为未知属性、几乎不会用到或很少用到的属性、其他托管属性、暂时不需要我们去处理的属性

Behavior(行为)  
    Properties(属性)  
        AllowGlowEffect (bool)开启发光特效(目前测试了并未看出效果)
        ClosingDelay (int)淡入淡出效果的延迟时间(毫秒)
        UseFadeInEffect (bool)使用淡入效果
        UseFadeOutEffect (bool)使用淡出效果
SplashForms  
        ActiveSplashFormTypeInfo (SplashScreen)当前激活的加载界面
布局  
        SplashFormLocation(X,Y) (int)加载界面在屏幕上的位置
SplashFormStartPosition (enum)加载界面初始位置,为Manual时上一个属性生效
设计  
        (Name) (string)控件名称,用于在代码中引用(唯一性)
GenerateMember (bool)在实例中生成成员变量
Modifiers (enum)成员变量的修饰词
数据  
    (ApplicationSettings)  
(PropertyBinding) 未知
   

一、新建一个加载界面:

SplashScreenManager控件只是作为加载界面的统一管理器,我们要使用加载界面,需要自行创建加载界面,两种方法如下:

1、点击SplashScreenManager控件右上角的三角箭头点开任务列表,然后点击Add Splash Screen,便可以创建一个SplashScreen窗口,创建完成之后可以在项目资源管理器中看到此窗体,并自动将其设置为当前激活的加载界面,这个设置为当前激活界面有什么用呢,其实没什么用:

然后下面会有4个属性设置,正好是对应上方属性栏中的前四个属性。

2、在项目资源管理器中直接创建SplashScreen窗口:

步骤:右击项目名称 -> 添加 -> windows窗体 -> DevExpress v15.2 Template Gallery -> Splash Screen -> Add Item

创建完成之后,点击SplashScreenManager控件右上角的三角箭头点开任务列表,在Active Splash Form一栏选择我们刚创建的SplashScreen窗口,将其手动设置为当前激活的加载界面:

二、使用加载界面

在代码中使用加载界面,打开Form1.cs(自己的主窗口类),在构造函数中加入如下代码:
public Form1()
{
//系统资源加载
Loading(); InitializeComponent(); //加载完成
LoadingCompleted();
}
/// <summary>
/// 系统资源加载
/// </summary>
private void Loading()
{
SplashScreenManager.ShowForm(typeof(SplashScreen1));
Thread.Sleep(5000);
//加载资源
}
/// <summary>
/// 加载完成
/// </summary>
private void LoadingCompleted()
{
SplashScreenManager.CloseForm();
}

运行一下,我们便可以看到一个不错的加载界面效果,在模拟的资源加载(睡眠5秒)之后便打开主窗体:

详解:
显示加载界面的方法,如下:
1、SplashScreenManager.ShowForm(typeof(你的SplashScreen名));
  这里的SplashScreen可以是当前场景中的任何一个SplashScreen窗口,并非一定是刚才那个设置为当前激活窗口的属性。
关闭加载界面的方法,如下:
2、SplashScreenManager.CloseForm();
  这个方法可以关闭当前程序里的所有加载窗口,包括后面要说的等候窗口。

三、新建一个等候界面

SplashScreenManager控件只是作为等候窗口的统一管理器,我们要使用在耗时操作显示的等候界面,需要自行创建等候界面,两种方法如下:

1、点击SplashScreenManager控件右上角的三角箭头点开任务列表,然后点击Add Wait Form,便可以创建一个WaitForm窗口,创建完成之后可以在项目资源管理器中看到此窗体,并自动将其设置为当前激活的等候窗口,这个设置为当前激活窗口有什么用呢,对于等候窗口还是有用:

2、在项目资源管理器中直接创建WaitForm窗口:

步骤:右击项目名称 -> 添加 -> windows窗体 -> DevExpress v15.2 Template Gallery -> Progress Indicator -> Add Item

创建完成之后,点击SplashScreenManager控件右上角的三角箭头点开任务列表,在Active Splash Form一栏选择我们刚创建的WaitForm窗口,将其手动设置为当前激活的等候界面:

四、使用等候界面

在代码中使用等候界面(执行一些耗时操作时这样做是非常友好的),打开Form1.cs(自己的主窗口类),在构造函数中加入如下代码:
        public Form1()
{
InitializeComponent(); //系统资源加载
Loading(); //加载完成
LoadingCompleted();
}
/// <summary>
/// 系统资源加载
/// </summary>
private void Loading()
{
splashScreenManager2.ShowWaitForm();
Thread.Sleep(5000);
//加载资源
}
/// <summary>
/// 加载完成
/// </summary>
private void LoadingCompleted()
{
splashScreenManager2.CloseWaitForm();
}

运行一下,我们便可以看到一个不错的等候界面效果,在模拟的资源加载(睡眠5秒)之后便打开主窗体(不过等候窗口不适合用在启动时,我这里只是做个例子哈):

详解:
显示等候界面的方法不同于加载界面,有两种,如下:
1、实例法:用实例的当前激活界面显示(所以SplashScreenManager那个属性Active Splash Form对于WaitForm有用,用处就是将当前实例绑定到该WaitForm)
你的SplashScreenManager实例名.ShowWaitForm();
  这里只会显示“你的SplashScreenManager实例名”的属性Active Splash Form对应的WaitForm。
2、全局法:用SplashScreenManager类显示
SplashScreenManager.ShowForm(typeof(你的WaitForm名));

关闭等候界面的方法,对应两种显示方法而不同,如下:
1、你的SplashScreenManager实例名.CloseWaitForm();
2、SplashScreenManager.CloseForm();

结语:

好了,基本情况就是这样了,对于加载界面以及操作等候界面说起来也就是两个Form而已,可以自己定制很多东西,当然其实不用借助SplashScreenManager控件也很好实现这两种需求,主要就是一个显示窗口及隐藏窗口的操作。

Winform DevExpress控件库(二) 使用SplashScreenManager控件定制程序加载页面的更多相关文章

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

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

  2. 转:zTree树控件实战篇:针对多个下拉加载zTree树应该如何做出合理的配置

    今天有一个zTree的朋友遇到一个非常棘手的问题,才研究zTree树控件两天就被上头催着看成果,很是苦恼.他面对的问题就是页面内多个地方需要下拉在其文本框下方加载zTree树,由于对zTree下拉加载 ...

  3. jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法

    博客分类: jquery-easyui jQueryAjax框架HTML  现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...

  4. 【Android-自定义控件】SwipeRefreshDemo 下拉刷新,上拉加载

    参考:https://github.com/PingerOne/SwipeRefreshDemo 谷歌官方的SwipeRefreshLayout控件,只有下拉刷新功能. 自定义的SwipeRefres ...

  5. MyBatis Java不同方式加载文件时的路径格式问题、Mybatis中加载.properties文件

    public class LoadPropTest { public static void main(String[] args) throws IOException { //一.Properti ...

  6. u-boot移植总结(二)LED点灯调试 和 u-boot加载地址

    (一)LED点灯调试 FL2440电路总共有4个LED0,LED1,LED2,LED3,分别接到板子GPB5,GPB6,GPB8,GPB10引脚.通过设置三个寄存器GPBCON(0x56000010) ...

  7. jQuery的JS库在本地运行项目时提示无法加载

    最近公司有个项目在我本地运行时引用本地的jquery.js,浏览器提示无法加载 <script src="/js/newperson/jquery-1.11.3.min.js" ...

  8. 构建基于Chromium的应用程序(Winform程序加载Html页面)

    chromium是google chrome浏览器所采用的内核,最开始由苹果的webkit发展而出,由于webkit在发展上存在分歧,而google希望在开发上有更大的自由度,2013年google决 ...

  9. 1. AE二次开发——地图的基本操作(加载地图文档,加载shape,加载mdb,地图的保存,缩放,漫游)

    1. 加载数据Icommand方法 ICommand Butdata = new ControlsAddDataCommandClass(); Butdata.OnCreate(axMapContro ...

随机推荐

  1. Hibernate(一):安装hibernate插件到eclipse环境

    离线安装hibernate插件到eclipse 为什么需要安装hibernate插件到eclipse?在开发eclipse时,很多配置文件信息如果有了hibernate插件集成进来就会有自能提示,方便 ...

  2. Java面试题—初级(1)

    1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有 ...

  3. 使用java客户端调用redis

    Redis支持很多编程语言的客户端,有C.C#.C++.Clojure.Common Lisp.Erlang.Go.Lua.Objective-C.PHP.Ruby.Scala,甚至更时髦的Node. ...

  4. JavaScript 中常见的内存泄露陷阱(摘)

    内存泄露是每个开发者最终都不得不面对的问题.即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况.内存泄露会导致一系列问题,比如:运行缓慢,崩溃,高延迟,甚至一些与其他应用相关的问题. 什么是内 ...

  5. [LeetCode] Maximum Length of Repeated Subarray 最长的重复子数组

    Given two integer arrays A and B, return the maximum length of an subarray that appears in both arra ...

  6. [LeetCode] Map Sum Pairs 映射配对之和

    Implement a MapSum class with insert, and sum methods. For the method insert, you'll be given a pair ...

  7. jenkins构建个人github上的项目

    最近刚进一家新公司,公司采用的是自动化集成测试工具jenkins进行,构建,部署项目 因为以前,没接触过这类工具,所以打算在自己本机安装一个jenkins进行学习 具体安装步骤,很简单,不做讲解 1. ...

  8. [Codeforces 864B]Polycarp and Letters

    Description Polycarp loves lowercase letters and dislikes uppercase ones. Once he got a string s con ...

  9. [BZOJ 4403]序列统计

    Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案对10^6+3取模的结果. Input 输入第一行包含一个整数T,表示数据组 ...

  10. NOIP 2008 双栈排序

    题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操作b 如果栈S1 ...