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. ZooKeeper:win7上安装单机及伪分布式安装

    zookeeper是一个为分布式应用所设计的分布式的.开源的调度服务,它主要用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用,协调及其管理的难度,提高性能的分布式服务. 本章的目的:如何 ...

  2. POJ-1753 Flip Game---二进制枚举子集

    题目链接: https://vjudge.net/problem/POJ-1753 题目大意: 有4*4的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑->白或者白-> ...

  3. Entry

    Entry(单行输入框)用于获取用户输入的文本. Entry组件仅允许输入一行文本,如果输入过长,那么内容将被滚动,意味着字符串不能被全部看到. from tkinter import * maste ...

  4. vue中实现全选功能

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>Vue ...

  5. 探寻 webpack 插件机制

    webpack 可谓是让人欣喜又让人忧,功能强大但需要一定的学习成本.在探寻 webpack 插件机制前,首先需要了解一件有意思的事情,webpack 插件机制是整个 webpack 工具的骨架,而 ...

  6. [LeetCode] 1-bit and 2-bit Characters 一位和两位字符

    We have two special characters. The first character can be represented by one bit 0. The second char ...

  7. [LeetCode] Next Greater Element III 下一个较大的元素之三

    Given a positive 32-bit integer n, you need to find the smallest 32-bit integer which has exactly th ...

  8. Mac 下安装 MySQL 经历

    1.使用 homebrew 安装: brew install mysql 结果报错: $ brew install mysql ==> Downloading http://dev.mysql. ...

  9. 洛谷P3980:[NOI2008]志愿者招募

    线性规划: #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring&g ...

  10. Codeforces 700E. Cool Slogans

    Description 给定一个串 \(S\),求一个序列 \(a_i\),满足 \(a_i\) 是原串的子串,且 \(a_i\) 在 \(a_{i-1}\) 中至少出现两次,求这个序列的最大的长度 ...