zoukankan      html  css  js  c++  java
  • winform关闭窗体时确认框提示两次

    在winform程序开发时,当用户点击窗体上的“关闭”按钮时,希望实现退出整个应用程序的功能。

    我一开始使用如下的代码实现,确认框总要出现两次:

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                      Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }

            }

    从网上搜了一下,主要有以下两种解决方法:

    方法一:添加一句this.Dispose();

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {

           this.Dispose();
                      Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }

            }

    方法二:不处理FormClosing事件,变为重写OnClosing方法

    protected override void OnClosing(CancelEventArgs e)
            {
                if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                        Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }
                base.OnClosing(e);
            }

    此外,窗体上的“退出”按钮,可以这样处理其Click事件:

     private void button1_Click(object sender, EventArgs e)
            {
                if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    this.Dispose();
                    Application.Exit();               
                }
            }

  • 相关阅读:
    【caffe】epoch,[batch_size],iteration的含义
    OAuth2.0学习(1-6)授权方式3-密码模式(Resource Owner Password Credentials Grant)
    OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)
    OAuth2.0学习(1-4)授权方式1-授权码模式(authorization code)
    OAuth2.0学习(1-3)OAuth2.0的参与者和流程
    OAuth2.0学习(1-1)OAuth2.0是什么?
    nodejs(1-1)
    HTTP协议扫盲(一)HTTP协议的基本概念和通讯原理
    MySql入门(2-2)创建数据库
    SpringCloud的注解:EnableEurekaClient vs EnableDiscoveryClient
  • 原文地址:https://www.cnblogs.com/lgzslf/p/1932757.html
Copyright © 2011-2022 走看看