估计你是做 Splash form吧。 可以这样做的。
默认 mainForm.Opacity = 0,SpalashForm 设定ShowInTaskBar= false,
在 Main(params string[] args) 启动流程如下:
1) 用一个Thread 启动 Splashform, Thread 里面做的是,把splashForm的实例 赋值给一个成员变量static _splashform , 并
且Application.Run(_spalshFrom)。大概如下
private static void ShowSpliashForm()
{
ThreadStart s = delegate
{
_splashform = new SplashForm();
Application.Run(_splashform);
};
var thread = new Thread(s);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
while (_splashform == null)
{
Thread.Sleep(100); //直到保证_splashform启动成功才退出,否则会报异常。
}
}
2)开始初始化程序,并且通过_splashform显示信息,记得要用splash.Invoke,因为Thread不同。
3) 初始化完成后,new Mainform,并且把 mainForm.Opacity = 100; 代码大概如下
mainform=new Mainform();
_splashform.Invoke(new Action(delegate(SplashForm state)
{
state.Close();
state.Dispose();
mainForm.Show();
mainForm.Activate();
mainForm.Focus();
}), _splashform);
Application.Run(mainForm);
支持(0)
反对(0)
沉默的糕点
|
园豆:1786
(小虾三级)
|
2010-11-15 15:11