当前位置: 首页 > news >正文

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

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

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


 

转载于:https://www.cnblogs.com/zs851/archive/2010/04/15/1712838.html

相关文章:

  • Bressanon
  • 注册表操作类
  • 像战士一样生活
  • 《使用Mason在HTML页面中嵌入Perl》(节选)
  • mysql: 复制mysql数据库
  • 开始ExtJS之旅:5.ExtJS对原有JavaScript对象的扩展
  • 获取当前月的天数
  • 猎人的狗力资源管理
  • HTML控件 隐藏
  • sharepoint 2010 配置用户同步连接出现错误信息 Unable to process Create message的一个解决方法...
  • 转载 : jqModel使用-- Loading external urls in jqModal jquery plugin
  • javascript弹出窗口详解
  • Javascript splice() 对数组的操作(插入、删除、替换元素)
  • 将util.Date转换为大写(农历)时间
  • 【JAVA学习笔记】02 运算符、表达式
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【mysql】环境安装、服务启动、密码设置
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Git 使用集
  • Golang-长连接-状态推送
  • JS数组方法汇总
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SpringBoot几种定时任务的实现方式
  • SQLServer插入数据
  • unity如何实现一个固定宽度的orthagraphic相机
  • 翻译:Hystrix - How To Use
  • - 概述 - 《设计模式(极简c++版)》
  • 工程优化暨babel升级小记
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 设计模式 开闭原则
  • 一些关于Rust在2019年的思考
  • 最近的计划
  • ​flutter 代码混淆
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #Linux(make工具和makefile文件以及makefile语法)
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (07)Hive——窗口函数详解
  • (3)(3.5) 遥测无线电区域条例
  • (C#)获取字符编码的类
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (多级缓存)缓存同步
  • (分布式缓存)Redis持久化
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (一) storm的集群安装与配置
  • (转)winform之ListView
  • (转)可以带来幸福的一本书
  • ***原理与防范