在写Winform程序的时候,经常会遇到“打开一个新的窗体然后关闭本窗体”之类的问题。最常见的就是登陆界面和主窗体了。而最常见的处理方法就是表单判断正确后 new MainForm().Show();

private void btnLogin_Click(object sender, EventArgs e)
{
if (登陆成功)
{
MainForm main = new MainForm();
main.Show();
this.Close();
}
else
{
MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}

  根据网友们的推荐,还有另一种实现方法,这种方法实现也很简单,只是多了几行代码而已。

  创建好Login和MainForm窗体,Login窗体有两个Button按钮,分别是登陆(btnLogin)和退出(btnExit)。并将Login窗体的AcceptButton属性指向“登陆”按钮btnLogin

  在Program.cs下的Main函数里面添加如下代码:  

Login myLogin = new Login();
if (myLogin.ShowDialog() == DialogResult.OK)
{
Application.Run(new MainForm());
}

  在Login窗体的登陆按钮事件中添加如下代码:

private void btnLogin_Click(object sender, EventArgs e)
{
if (登陆成功)
{
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}

WinFrom打开一个窗体关闭另一个窗体的更多相关文章

  1. js父窗体关闭,子窗体紧随

    近来的.我们遇到了权限管理系统.由于权限管理系统与原系统的风格不符.打开一个全新的窗口.问题就来了.admin取消后,,权限管理形式不关闭.其他普通用户登录后.尚能经营权的管理形式. 简化问题:adm ...

  2. WinFrom - 打开一个窗体关闭另一个窗体

    在写Winform程序的时候,经常会遇到“打开一个新的窗体然后关闭本窗体”之类的问题.最常见的就是登陆界面和主窗体了.而最常见的处理方法就是表单判断正确后 new MainForm().Show(); ...

  3. winform c#中子窗体关闭刷新父窗体

    父窗体Form1 子窗体Form2 Form1中有一个datagridview控件和一添加按钮,Form2中有一个Text控件和一个保存按钮 要求点击Form1窗体上的添加按钮,弹出Form2,再te ...

  4. Ax 从一个form关闭另外一个form,AX全局变量

    如果这个两个form存在调用关系,我们当然可以在调用的时候把对象传过来,然后再关闭之. 但是当2个form没有被调用的关系,我们可以利用infolog.globalCache()将FORM对象保存起来 ...

  5. 收藏 Silverlight中子窗体关闭刷新父窗体(转载)

        public partial class MainPage : UserControl    {        public MainPage()        {            In ...

  6. [Winfrom] 使用一个启动快捷方式,打开2个不同的窗体并且共用一个缓存空间

    之所以有这个功能,是不想再给后台和前台写一套通讯机制的情况下偷懒的办法! 之前发现在主函数里面写方法,第二次启动程序打开新窗体或是显示隐藏窗体!最后却发现在主函数里面打开的新窗体和原启动的程序并不是共 ...

  7. C# 等待另外一个窗体关闭,再进行主线程的代码

    方法1 用Form类或其子类的showDialog方法. 比如你在form1里有一个按扭,然后你在Form1的点击事件里写上显示form2的代码: Form2 frm=new Form2(); frm ...

  8. winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

    winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...

  9. 利用C# 窗体设计 写一个抽奖游戏

    老师布置了一个任务,要求我们做一个抽奖游戏,以下是我个人制作的一个作品与写项目的过程. 我们用到了8个pictureBox控件和一个button,设置好大小,并且编排成一个九宫个形状 添加窗体的背景图 ...

随机推荐

  1. php形式的内容被处理

    /** * 过滤HTML内容RETURN * * @param $string * @param bool $html * * @return array|string */ public stati ...

  2. zoj 3829 Known Notation(2014在牡丹江区域赛k称号)

    Known Notation Time Limit: 2 Seconds      Memory Limit: 131072 KB Do you know reverse Polish notatio ...

  3. vim note(3)

    Ctrl+w  Ctrl+v  will create a new window on the right side of the current window Ctrl+w  Ctrl+s   wi ...

  4. ABP展现层——动态生成WebApi

    ABP展现层——动态生成WebApi 点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之20.ABP展现层——动态生成WebApi ABP是“ASP.NET Boilerp ...

  5. C# LDAP 管理(创建新用户)

    今天用C#实现了一套LDAP域账号的创建和查询,感受挺多. 算是第一次接触LDAP吧,之前曾经做了一个登录的验证,就是查询功能,那个相对比较简单,用到了一个方法就搞定了. 这次的需求是要用编程的方式创 ...

  6. IOS ARC和非ARC文件混用

    ARC在SDK4.0的时候增加的,因为要和曾经的项目融合,就会有arc和非arc文件的混合. 当然,也就这两种情况: 1.自己的旧项目没有使用ARC,可是引入的第三方库却是使用了ARC的. 2.自己的 ...

  7. 1023 Train Problem II(卡特兰数)

    Problem Description As we all know the Train Problem I, the boss of the Ignatius Train Station want ...

  8. 測试之路2——对照XML文件1

    才来几天,老大又给了我一个新的任务.不像曾经的建100个任务project那么坑爹,却还是顿时让我感觉压力山大. 由于在这之前,我改了他写的例程,用于生成新的任务项目,事实上任务项目就是通过XML文件 ...

  9. [Python 2.7] Hello World CGI HTTP Server

    # CGI HTTP server ## Getting Started Python 2.x is preferred to this simple demo. I'm using Python 2 ...

  10. Android学习----异常(2):Please ensure that adb is correctly located at ' ... '

    打开任务管理器,在后台进程中找到 kadb,结束这个进程,重新启动eclipse.