C# winform 登陆成功打开主form,同时关闭登陆form

摘要:
主要原理是使用DialogResult=DialogResult.OK。首先,程序加载主窗体1,主窗体1将创建一个新窗体2并弹出一个登录窗口。登录窗口验证密码正确后,设置DialogResult.OK,然后关闭对话框。From after closing_ load方法继续运行,以确定弹出登录框form2的DialogResult是否正常。如果是,则加载主窗体。如果没有,则关闭主窗体。第二种方法:将mian方法重写为Formf2=newForm2();f2.ShowDialog();ifApplication.Run;反过来;当主方法运行时,首先加载form2登录框进行验证。如果验证通过,它将运行。同时,这两种方法都不会导致显示主窗口和次窗口,而关闭另一个窗口

设置 Application.Run(new Form1());其中form1为主窗口,然后在form1的load方法里面这样写:

C# winform 登陆成功打开主form,同时关闭登陆form第1张C# winform 登陆成功打开主form,同时关闭登陆form第2张代码
private void Form1_Load(object sender, EventArgs e) 
        { 
            Form f2 
= new Form2(); 
            f2.ShowDialog(); 
            
if (f2.DialogResult == DialogResult.OK) 
            { 
                MessageBox.Show(
"hello");               //    登陆成功显示hello 
            } 
            
else { 
                
this.Close(); 
            } 
        }


在form2的登陆按钮的事件上这样写


private void button1_Click(object sender, EventArgs e) 
        { 
            
if (textBox1.Text == "a") { //验证密码 
                this.DialogResult = DialogResult.OK; 
                
this.Close(); 
            } 
        }

如果这样写的话,是可以进行登陆验证的。主要原理就是利用的DialogResult = DialogResult.OK来实现的,

首先程序load主form1,主form1就会new一个form2并弹出登陆窗口,在登陆窗口验证密码正确以后设置DialogResult.OK这一句,再将对话框关闭。关闭以后from_load方法继续运行判断弹出的登陆框form2的DialogResult是否是ok,如果是,则加载主表单,如果否,则关闭主表单。

第二种方法:

将mian方法改写成

Form f2 = new Form2(); 
            f2.ShowDialog(); 
            
if (f2.DialogResult == DialogResult.OK) 
                Application.Run(
new Form1()); 
            
else return;

在main方法运行的时候就先加载form2登陆框进行验证,如果验证通过才run(new form1())。如果不通过则返回。

备注:

还有一种就是将登陆框hide,直接是 this.hide()而不是this.close()。以上这两种方法,第二种比第一种简单一些,它们都可以避免X掉登陆框之后任然加载主表单的情况。同时这两种方法都不会出现主次窗口都显示和关掉一个窗口另外一个也关闭的情况


免责声明:文章转载自《C# winform 登陆成功打开主form,同时关闭登陆form》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Caused by: java.lang.IllegalStateException: javax.websocket.server.ServerContainer not availablegithub中的README.md快速布局和换行下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

pyqt 窗口的调用

关于Pyqt窗口调用的格式 正常设计两个ui文件 正常Pyuic转成.py 在唯一的 run.py 函数里这样写即可实现窗口调用 import ... from Timer2 import Ui_Form # Timer2为主ui对于py文件的名字 from TimerSetup import Ui_Form as UISetup # Timer...

WinForm应用程序中PropertyGrid的使用

1、概述 在WinForm应用程序中,PropertyGrid提供用于浏览、编辑对象的属性字段的UI。您也可以把它看成一个容器,因为它继承了ContainerControl类,因此在编辑输入的时候,可能是系统控件(如字体、颜色对话框)或者用户控件(如下面举例的用于Enum类型输入的用户控件)。 2、简单使用 PropertyGrid的使用极其简单,从工具栏...

【Android】图片(文件)上传的请求分析结构

  怎么在android中上传文件,即怎么用Java向服务器上传文件、上传图片,这是个老问题了,在网上能搜到现成的代码,很多朋友用起来也比较熟了,但是为什么这么写,可能很多朋友并不清楚,这篇文章就来分析一下Web中文件上传的请求包内容。如有问题请联系zhfch.class@gmail.com。   当然说,这篇文章被我冠了一个“Android”的前缀,因为...

C#WinForm仿qq窗体拖到windows窗体边上时,自动隐藏C#WinForm

C#WinForm仿qq窗体拖到windows窗体边上时,自动隐藏C#WinForm。代码:     public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }         privat...

C# winform在WebBrowser下获取完整的Cookies(包括含HTTPOnly属性的)

利用wininet获取网页Cookie 模拟post请求取数据,使用普通的Cookies无法获取完整的Cookies信息 只能获取了一部分 ,导致取回来的是重新登陆的页面。 后来经过不懈的精神,终于找到了方法实现获取HTTPOnly。 WinInet WinInet(“Windows Internet”)API帮助程序员使用三个常见的Internet协议,...

asp:Literal控件

asp:Literal控件的Text属性,可以将所写的内容完整的反应到前台页面中。例如: HTML <body>   <form runat="server">      <h1><asp:Literal runat=server /></h1>   </form></body&...