前不久為了給我的智動郵件搜尋加個Splash視窗來增加使用者的體驗,於是就立馬上網搜了許多關於C# 實現Splash的方法,下面簡單介紹下這些方法,最後再介紹我自己原創的比較簡單而實用的方法:
第一種、VB.NET庫官方方法實現的,這種方法缺點就是太麻煩,而且還要引入VB庫,感覺不是調用一個方法能解決要做很多重寫之類的事才能實現splash視窗
第二種、這種好像是在那個英文網站傳出來的, 叫什麼我記不起來了很出名的一個,就是寫一個公用的SPLASH類,然後類中用個線成以ShowDialog方式出現SPALSH視窗,這種方法可能在VS2003下運行沒問題,可我在2005下一脫離VS環竟運行就會出現BUG了,一關SPALSH視窗後主視窗會打不開
最後我還是自己想了個簡單的方法,現在也在用,以上方法個人感覺問題太多就沒寫代碼出來了,
我的方法是在Program的主函數main()中來窗建一個SPALSH視窗,其實就是個一般的FORM,然後直接以普通方式顯示,因為這樣這個視窗會一直存在,然後你就可以處理你的初始化工作,並建立主表單,最後在顯示主表單運行前先把Splash視窗關了就行了,也不用特別的引用什麼類什麼的,非常方便,以下是源碼(轉載註明來自www.zdwork.cn謝謝):
static class Program
{
/// <summary>
/// 應用程式的主進入點。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
F_Splash f = new F_Splash();//你可以下在設計器中設計好該視窗
f.Show();
f.Refresh();//這裡不重新整理的話LABEL的字就不能更新了
Label fl = (Label)f.Controls["g_Back"].Controls["g_Info"];//這裡指向SPLASH視窗中的Label
fl.Text = "主視窗載入中..";
System.Threading.Thread.Sleep(20);
f.Refresh();
F_Main fm = new F_Main();
fl.Text = "初開始化完成..";
f.Refresh();
f.Close();//初開始化完成後關閉SPLASH
f.Dispose();
System.Threading.Thread.Sleep(20);
Application.Run(fm);
}
}
}