1. 程式人生 > 其它 >轉Winform DevExpress控制元件庫(一) 使用SplashScreenManager控制元件定製程式載入頁面

轉Winform DevExpress控制元件庫(一) 使用SplashScreenManager控制元件定製程式載入頁面

SplashScreenManager控制元件:主要作用是顯示在進行耗時操作時的等待介面;

在工具箱輸入名稱SplashScreenManager檢索,然後直接拖拽到面板上便可使用;

SplashScreenManager控制元件整體屬性描述:(選中SplashScreenManager控制元件例項,開啟屬性視窗)

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控制元件也很好實現這兩種需求,主要就是一個顯示視窗及隱藏視窗的操作。

出處:https://www.cnblogs.com/wdd812674802/p/12893029.html