zoukankan      html  css  js  c++  java
  • 【C#】WinForm

    一、关闭窗体与退出程序

     1 private void metroButton2_Click(object sender, EventArgs e)
     2         {
     3             
     4             Close();    //关闭当前窗体。如果不是主窗体,无法退出程序;有托管线程(非主线程),也无法干净退出
     5 
     6             Application.Exit(); //强制所有消息终止,关闭所有窗体。有托管线程(非主线程),也无法干净退出
     7 
     8             Application.ExitThread();   //强制终止调用线程上的所有消息。同样面临其它线程无法正确退出的问题
     9 
    10             Environment.Exit(0);    //这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
    11         }

    二、登录窗体(FrmLogin)和主窗体(FrmMain)

    方法一:

    Login按钮代码:

    1 private void metroButton1_Click(object sender, EventArgs e)
    2         {
    3             if (true)
    4             {
    5                 DialogResult = DialogResult.OK;
    6                 Close();
    7             }
    8         }

    Program.cs Main方法代码:

     1 static void Main()
     2         {
     3             Application.EnableVisualStyles();
     4             Application.SetCompatibleTextRenderingDefault(false);
     5 
     6             FrmChange fr = new FrmChange();
     7             if (fr.ShowDialog()==DialogResult.OK)
     8             {
     9                 Application.Run(new Form1());
    10             }
    11             
    12         }

    方法二:

    Login按钮代码:

     1 //Login
     2         private void metroButton1_Click(object sender, EventArgs e)
     3         {
     4             if (true)
     5             {
     6                 Form1 fr = new Form1();
     7                 fr.Show();
     8                 Dispose(false);
     9             }
    10         }

    主窗体关闭:

    FormClosing事件:在窗体关闭前发生,窗体的关闭动作可取消

    FormClosed事件:在窗体关闭后发生,窗体的关闭动作不可取消

     1 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
     2         {
     3             if (MessageBox.Show("确认退出程序吗", "退出程序", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
     4             {
     5                 e.Cancel = true;
     6             }
     7             else
     8             {
     9                 //Application.Exit();
    10             }
    11         }

    备注:如果不将Application.Exit()方法注释掉,则会显示两个确认退出的对话框,但第二对话框的选择对是否退出没有影响

  • 相关阅读:
    MySQL5.7(64位)windows下的安装
    Python---更改pip源
    .NET WEB技术小记
    前端板书1
    Hadoop伪分布式系统的搭建(ubuntu)
    Hive的基本操作
    SQLServer2008附加数据库不成功 操作系统错误5
    VUE学习小结
    jQuery入门基础(选择器)
    Linq(高级查询)
  • 原文地址:https://www.cnblogs.com/zps-blog/p/12950321.html
Copyright © 2011-2022 走看看