上代码,刚才那个不知为啥出了问题
我做了一个登陆界面,连接远程数据库验证信息,但是由于是远程比较慢,想弹出一个等待窗口,该窗口显示“正在登陆,请稍后....”但是登陆button的事件里如下的代码,wait窗口里面死活label的东西都显示不出来,只显示了背景色,我加个button都显示不出来,求解释....
private void button1_Click(object sender, EventArgs e)
{
wait wt = new wait();
wt.Show();
string user = textBox1.Text.Trim();
string sql = "select * from userinfo where code= '" + user + "'";
DataSet ds = DB.getdatasetbysql(sql);
//this.dataGrid1.DataSource = ds.Tables["table1"];
if (ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("用户名不存在", "错误", MessageBoxButtons.OK);
}
else if (ds.Tables[0].Rows[0]["password"].ToString() == textBox2.Text.Trim())
{
userid = ds.Tables[0].Rows[0]["id"].ToString();
DateTime dt = DateTime.Now;
Form2 fr = new Form2(userid, dt);
fr.Show();
}
else
{
MessageBox.Show("密码错误", "错误", MessageBoxButtons.OK);
}
wt.Hide();
}
------解决方案--------------------
在你的“登录button”代码中,它应该只是唤起一个线程去进行登录,然后立刻纠结了,把控制权立刻交还给主线程。如果你不知道怎么变成,可以看msdn上关于backgroundworker控件的使用,然后用一个backgroundworker执行登录操作,而不要在你的登录button事件处理过程中去执行。登录button事件处理过程只是注册这样一个登录程序给backgroundworker,并不等待它执行完毕。