想在自己的Winform程序加载前弹出一个窗口,窗口中间用哥lable,然后显示“正在连接数据库....”,如果称成功,就显示连接成功,然后关闭,否则,就显示错误原因。。,我是在弹出的窗口的load事件里面添加的上边的效果,用的是阻塞委托,结果:双击我的程序的时候,如果连接成功,就直接弹出主窗体了,否则,就直接弹出了错误原因的那段,根本没有“正在连接数据库”这段貌似load事件是把所有的事情都干完直接出结果才显示窗体,跪求大侠给说下,上边的效果应该怎么实现
源码如下:public partial class loginState : Form
{
public delegate string delLogin();
public loginState()
{
InitializeComponent(); }
public string CheckConnection()
{
string login=string.Empty;
SqlConnection conn = new SqlConnection("Data Source=192.168.237.128;Initial Catalog=TMSDB;User ID=rckp;Password=123");
try
{
conn.Open();
login="连接成功";
}
catch(Exception ex)
{
login = ex.Message;
}
return login;
} private void loginState_Load(object sender, EventArgs e)
{
delLogin dl = new delLogin(CheckConnection);
dl.Invoke();
lbl_Loginstate.Text = "正在连接远程数据库....";
Thread.Sleep(3000);
if (dl.Invoke() == "连接成功")
{
lbl_Loginstate.Text = "连接成功,正在进入系统!";
Thread.Sleep(3000);
this.Close();
}
else
{
lbl_Loginstate.Text = dl.Invoke();
}
}
}
源码如下:public partial class loginState : Form
{
public delegate string delLogin();
public loginState()
{
InitializeComponent(); }
public string CheckConnection()
{
string login=string.Empty;
SqlConnection conn = new SqlConnection("Data Source=192.168.237.128;Initial Catalog=TMSDB;User ID=rckp;Password=123");
try
{
conn.Open();
login="连接成功";
}
catch(Exception ex)
{
login = ex.Message;
}
return login;
} private void loginState_Load(object sender, EventArgs e)
{
delLogin dl = new delLogin(CheckConnection);
dl.Invoke();
lbl_Loginstate.Text = "正在连接远程数据库....";
Thread.Sleep(3000);
if (dl.Invoke() == "连接成功")
{
lbl_Loginstate.Text = "连接成功,正在进入系统!";
Thread.Sleep(3000);
this.Close();
}
else
{
lbl_Loginstate.Text = dl.Invoke();
}
}
}
application.DoEvents()
连接成功,修改label
application.DoEvents()
或委托弹出窗体显示加载进度