我做了一个登陆界面,连接远程数据库验证信息,但是由于是远程比较慢,想弹出一个等待窗口,该窗口显示“正在登陆,请稍后....”但是登陆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();
}
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();
}
解决方案 »
- 用户登录成功时写入登录日志的问题
- 关于Socket实现网络封包监视代码的错误
- datagridview 设置 EditOnEnter 后 如何用delete键删除行?
- 水晶报表动态加载图片问题
- ftp地址和账号如何验证?在线等待
- 这样的存储过程怎么写啊?
- 如何象IIS一样,通过指定文件格式使用对应的isapi来处理文件????
- 菜鸟求助,请问在C#的FORM情况下,如何把把一个值传到服务器,在服务器查询并返回给客户端多个值?谢谢!!
- DirectSound 捕捉缓冲区创建失败!!!
- 在系统架构设计或者功能设计时,对象的状态该如何设计?
- 如下这样一段代码,其中 Type.Missing到底是什么意思,起什么作用啊?先感谢前辈了!
- String类的使用
可以将验证部分单独设置一个后台线程,完成后返回callback,将wait窗体关掉。
private void button1_Click(object sender, EventArgs e)
{
wait wt = new wait();
wt.Show();
Thread p =new Thread(new TheadStart(VFunc))
p.Start();
_VEvent.WaitOne(); //这样做仅是便于理解,但更好的方式是是使用异步模式的CallBack()
wt.Hide();
}
private void VFunc()
{
....
//需要注意的是,在单独的线程中启动form,貌似只好用ShowDialog,但其输入框的切换中文输入有些问题,因此最好在主线程使用Show。
_VEvent.Set();
}