用异步方法也可以,这里介绍如何用常规方法进行变通:
这里以数据载入在A窗的load事件为例,如果Loaddata()是载入数据的命令,象以下这样写代码:
1:load事件
{
this.Hide();
if(SelectedCount > 150)//这里根据信息多少来决定是否有必要
{
fWait = new MessageCtr();//MessageCtr是等待提示窗,在上面写点字或者图片做说明就可以
fWait.Show();
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);//启动timer的检查
Loaddata();//该载入数据方法执行完毕后要返回一个bool值
}
else//没有必要就直接显示得了
{
Loaddata();
this.Show();
}
注意要在数据载入窗设置个timer控件.就用这个控件来检查Loaddata()是否结束
2: timer控件的Tick方法
private void timer1_Tick(object sender, System.EventArgs e)
{
if(isFinished)//检查数据载入完毕否
{
fWait.Close();//完毕就关了提示窗并显示本地数据窗
this.Show();
this.timer1.Tick -= new System.EventHandler(this.timer1_Tick);//撤销timer的检查
}
}