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下載(主進程執行耗時操作)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM