日期:2014-05-18  浏览次数:20757 次

上代码,关于一个form中打开另一个form的问题
我做了一个登陆界面,连接远程数据库验证信息,但是由于是远程比较慢,想弹出一个等待窗口,该窗口显示“正在登陆,请稍后....”但是登陆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();
  }

------解决方案--------------------
wait窗体 与验证部分要使用不同线程,不然就被阻塞了。
可以将验证部分单独设置一个后台线程,完成后返回callback,将wait窗体关掉。