如何关闭自定义对话框?

stjordan 2002-08-16 10:48:45
运行主程序之前,调用验证用户名和密码的对话框,验证成功后,可进入主程序,但无法关闭验证对话框。
对话框“确定”按钮的代码如下:
SqlConnection myConnection = new SqlConnection("server=situ;uid=sa;pwd=;database=yhljxc");
myConnection.Open();
SqlCommand cmdSql = new SqlCommand("select Password from yhllogin where username="+"'"+tbxUser.Text+"'",myConnection);
SqlDataReader myReader = cmdSql.ExecuteReader(CommandBehavior.CloseConnection);
myReader.Read();
if(tbxUser.Text=="" || tbxPassword.Text=="")
{
MessageBox.Show("请输入用户名和密码!");
}
else if (myReader["Password"].ToString()==tbxPassword.Text.ToString())
{
MainWindow myWin=new MainWindow();
myWin.Show();
myReader.Close();
myConnection.Close();
this.Close();

}
else
{
MessageBox.Show("请输入正确的用户名和密码!");
myReader.Close();
myConnection.Close();
}

}

执行this.Close()后,主程序也退出。如何解决。
...全文
332 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
acptvb 2002-08-16
  • 打赏
  • 举报
回复
感谢您使用微软产品。

你可以通过如下的思路来实现目标:
1,在Form1-主窗口中:
public static bool valid = false;
……
private void Form1_Load(object sender, System.EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
if(!valid)
this.Close();
}
其中Form2为自定义对话框,用于验证用户的合法性。
2,在Form2-自定义对话框中:
private void button1_Click(object sender, System.EventArgs e)
{
Form1.valid = true; //如果是合法用户,则赋值为true,否则为false
this.Close();
}
在确定按钮中,验证用户的合法性,如果为合法用户,则赋值Form1.valid = true;,否则为false.
Form1-主窗口,根据静态属性valid,判断是否显示窗口或者关闭窗口。


— 微软全球技术中心 VB支持中心

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
stjordan 2002-08-16
  • 打赏
  • 举报
回复
为什么没人理我。555!
说简单一点:
在form1的Main()中:
Application.Run(new Form2());
在Form2中,检验用户名和密码,加入button1的Click事件用于检验正确与否。当通过验证时,点击button1返回Form1,但Form2无法关闭。
我在Form2中调用的是this.Close();
pursuer 2002-08-16
  • 打赏
  • 举报
回复
设置一个bool变量isok判断输入是否正确(正确的话isok为true)
然后重载Form2的Closing函数,加入
e.Cancel=!isok;
这样就可以了
stjordan 2002-08-16
  • 打赏
  • 举报
回复
多谢!
但是,在Form2中无论我输入正确或错误的用户名和密码,Form2都关闭,显示Form1.我希望在输入错误的情况下,程序依然停留在Form2中等待用户输入。如何解决?

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧