时间:2021-05-20
在使用C#进行Winform编程时,我们经常需要使用一个登录框来进行登录,一旦输入的用户名密码登录成功,这时登录窗口应该关闭,而且同时打开主程序窗口。该如何来实现呢?
乍一想,很简单啊,打开主窗口就用主窗口的Show()方法,而关闭登录窗口就用登录窗口的Close()方法即可。即代码如下:
Program.cs中代码:
复制代码 代码如下:
Application.Run(new FormLogin());
登录窗口(FormLogin)代码:
复制代码 代码如下:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "a") { //验证用户名密码
FormMain fm = New FormMain();
fm.Show(); //打开主窗口
this.Close(); //关闭登录窗口
}
}
事实证明,这种办法是行不通的。因为主窗口是由登录窗口打开的,所以我们在关闭登录窗口时,主窗口也会被一起关闭。这是一个线程树,或者窗口树的关系,即一个窗口关闭时,由它打开的新窗口都将被关闭。
那么应该怎么解决呢?经过小编鉴定,网上有这样一种解决办法是很不错的。
Program.cs中代码:
复制代码 代码如下:
FormLogin fl = new FormLogin();
fl.ShowDialog();
if (fl.DialogResult == DialogResult.OK)
{
Application.Run(new FormMain());
}
else
{
return;
}
即先将登录窗口作为一个对话框打开,如果这个对话框返回一个DialogResult.OK的值,那么就表示登录验证成功了,于是打开主窗体。如果验证失败,则程序结束、退出。
在登录窗体(FormLoin)中代码:
复制代码 代码如下:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "aaa") { //验证用户名密码成功
this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态
this.Close(); //关闭登录窗口
}
}
这个方法不错,大家可以试试。
关于Winform如何实现主窗口打开时登录窗口关闭,本文就介绍这么多,希望对您有所帮助,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法。分享给大家供大家参考,具体如下:winform程序运行过程中,用户用鼠标拖动窗体大
本文实例讲述了C#实现简单的Login窗口。分享给大家供大家参考。具体实现方法如下:C#制作登录窗体,登录成功之后正确的做法是关闭(close)登录窗体,而不是
本文实例讲述了C#中单例的实现方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:#region"实现这个窗口类的单例,单例类常用于被主窗口以sho
本文实例分析了C#中登录窗体和欢迎窗体关闭方法。分享给大家供大家参考。具体分析如下:在c#的winform编程中,我们经常会做登录窗体或欢迎窗体,并把他们作为启
先说下我的需求:主窗口打开子窗口,主窗口有数据传给打开的子窗口,子窗口关闭时直接返回主窗口。----------------------------------