作者virdust2003 (XDXDXDXDXDXD)
看板C_Sharp
标题Re: [问题] SplashScreen
时间Sat May 2 19:26:38 2009
我觉得最好的作法如下
public static frmSplash g_frmSplash;
public static Form g_frmMain;
public static Thread g_ThreadShowSplash;
g_ThreadShowSplash = new Thread(new ThreadStart(ShowSplash));
g_ThreadShowSplash.IsBackground = true;
g_ThreadShowSplash.Start();
g_frmMain = f;
Application.Run(f);
public static void ShowSplash()
{
if (g_frmSplash == null)
g_frmSplash = new frmSplash();
g_frmSplash.ShowDialog();
}
private void frmMain_Load(object sender, EventArgs e)
{
if (Program.g_ThreadShowSplash != null &&
(Program.g_ThreadShowSplash.ThreadState ==
System.Threading.ThreadState.Running ||
Program.g_ThreadShowSplash.ThreadState ==
System.Threading.ThreadState.Background))
{
//Program.g_ThreadShowSplash.Abort();
Program.g_frmSplash.Invoke(new MethodInvoker(delegate
{
Program.g_frmSplash.Close();
}));
Program.g_frmSplash = null;
}
}
没有排版,不好意思,不用 Thread.Abort 的原因是因为会喷出 AbortException
※ 引述《tryPTT (NULL)》之铭言:
: 各位好
: 小弟最近在学C#..看到书上有提到一个东西
: 叫做SplashScreen
: 就是类似开启Word会先出现的那个矩形小版面~~~
: 只是我不知道该怎麽实作..
: 只觉得应该是在Form的Load事件去操作
: 但不知道该怎麽写
: 希望各位给予提示....感谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.212.92
1F:→ tryPTT:ㄜ..似乎有点高深XD 05/02 23:31