C# WinForm 等待窗體的實現
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
最近在做一個項目,需要用到等待窗體,在DevExpress下面有SplashScreen控件可以使用,同時也有ProgressIndicator控件能用,但是如果沒有用Dev開發的話,我們就需要自定義一個等待窗體了。 本項目開放源代碼,下載地址見本文末尾(如果本程序有幫助到您,希望留言評論,感謝) VS環境:vs2017,低版本環境可以使用VS Convert轉換工具進行版本轉換,或者直接看源代碼,復制到新項目中也可以。 首先,把截圖放上來:(界面沒有優化) 多功能Loading中,實現了實時顯示執行進度的功能,該功能也可以改進為用進度條顯示。
實現的功能比較簡單,就是在程序處理 一些耗時比較多的代碼時,將Loading窗體展示給用戶,并在后臺執行耗時操作,這樣能夠給用戶較好的體驗。 核心代碼是我自己寫的一個SplashScreenManager類:有2個方法:1、ShowLoading()2、CloseLoading() 調用方法舉例: //實例化一個窗口,窗口需要自己定義哦 SimpleLoading loadingfrm = new SimpleLoading(this); //將Loaing窗口,注入到 SplashScreenManager 來管理 GF2Koder.SplashScreenManager loading = new GF2Koder.SplashScreenManager(loadingfrm); loading.ShowLoading(); //try catch 包起來,進行異常處理 try { //模擬耗時操作 for (int i = 0; i < 20; i++) { Thread.Sleep(100); } } catch (Exception) { /*可選處理異常*/ } finally { loading.CloseWaitForm(); } 需要顯示進度的話,舉例: public static bool flag = true; private void button2_Click(object sender, EventArgs e) { flag = true;//flag 為false時候,退出執行耗時操作 MultiFuncLoading loadingfrm = new MultiFuncLoading(this); // 將Loaing窗口,注入到 SplashScreenManager 來管理 GF2Koder.SplashScreenManager loading = new GF2Koder.SplashScreenManager(loadingfrm); loading.ShowLoading(); // 設置loadingfrm操作必須在調用ShowLoading之后執行 loadingfrm.SetTxt("多功能Loaidng界面", "拼命加載中...客官耐心等待", "Please Waitting..."); // try catch 包起來,進行異常處理 try { //模擬耗時操作 for (int i = 0; i < 100; i++) { Thread.Sleep(100); loadingfrm.SetJD("當前:"+i+"/總計:100","當前進度:"+i); if (!flag) { break;/*用戶點擊取消執行后,跳出循環*/ } } } catch (Exception) { /*可選處理異常*/ } finally { loading.CloseWaitForm(); } } 附錄: 這個程序的第一個版本參考了 網名為 “八哥” 的一個程序,當時我在群里面的時候,感謝他的熱情幫助。 現將我的代碼貼出來吧,里面用的了委托的概念。大家如果不懂的話,可以百度一下,這里給出幾個鏈接: http://blog.csdn.net/ggz631047367/article/details/44646233 http://www.runoob.com/csharp/csharp-delegate.html http://blog.csdn.net/sjj2011/article/details/7835200 http://blog.csdn.net/testcs_dn/article/details/37671513 另外附上下載鏈接:V1.0 不支持下載 (該版本有BUG,線程在init函數中調用的,可能會出現卡頓,請下載V2版本) V2版本下載地址:V2.0下載(新建進程執行耗時操作,該版本不再提供下載) V3版本下載地址:V3.0下載(主進程執行耗時操作) 該文章在 2021/1/30 12:50:06 編輯過 |
關鍵字查詢
相關文章
正在查詢... |