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


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

    代码
    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掉登陆框之后任然加载主表单的情况。同时这两种方法都不会出现主次窗口都显示和关掉一个窗口另外一个也关闭的情况


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mane_yao/archive/2010/09/15/5886572.aspx

  • 相关阅读:
    a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。
    +=
    map 和reduce
    赋值语句
    高阶函数
    函数式编程
    迭代器
    如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
    ie11升级的过程中遇到的问题以及解决办法
    .csporj 文件部分节点解析
  • 原文地址:https://www.cnblogs.com/mane/p/1830030.html
Copyright © 2020-2023  润新知