如何避免退出确认?

时间:2016-08-23 03:26:07

标签: c# exception counter exit formclosing

我想做的很简单,但我不知道该怎么做。我正在做一个基本的窗口登录,我写了一个代码,在退出之前要求确认,如下:(我有西班牙语的名字,如果你不明白,“康塔多”是柜台)

zipalign

之后我做了什么,是一个计数器,如果我输入错误信息三次,应用程序将关闭,这是代码:

$ANDROID_HOME/built-tools

所以,这样做有效,但是三次我输错了信息后,在关闭程序之前问我是否要这样做(我知道那是为了 Form1_FormClosing ),我希望程序在那种情况下不会问它。

2 个答案:

答案 0 :(得分:1)

你只需要设置一个标志:

private bool _noConfirmExit;

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (_noConfirmExit)
    {
        return;
    }

    DialogResult dialogo = MessageBox.Show("¿Desea cerrar la aplicación?", "Aviso!", MessageBoxButtons.YesNo, MessageBoxIcon.Hand);
    if (dialogo == DialogResult.No)
    {
        e.Cancel = true;
    }
}

private void aceptar_MouseClick(object sender, MouseEventArgs e)
{
    if(Contador == 2)
    {
        _noConfirmExit = true;
        DialogoCerrar();
        Close();
    } 

    if (usuario.Text == ("Demo") && (contraseña.Text == ("ABC123")))
    {
        Contador = 0;
        DialogResult dialogo = MessageBox.Show("Ingreso exitoso!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

    }
    else
    {
        DialogResult dialogo = MessageBox.Show("Datos incorrectos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
        Contador++;
    }
}

这样,您的FormClosing事件处理程序可以判断因其他原因而关闭与关闭之间的区别,因为计数器已达到其限制。

答案 1 :(得分:1)

这里的代码跟踪您是否应该显示警告对话框。它基本上是您在不想显示对话框时设置的标志。

    public partial class Form1 : Form
    {
        private bool SkipWarning = false;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if(!SkipWarning)
            {
                DialogResult dialogo = MessageBox.Show("¿Desea cerrar la aplicación?", "Aviso!", MessageBoxButtons.YesNo, MessageBoxIcon.Hand);
                if (dialogo == DialogResult.No)
                {
                    e.Cancel = true;
                }
            }
        }

        private void aceptar_MouseClick(object sender, MouseEventArgs e)
    {
       if(Contador == 2)
        {
            SkipWarning = true;
            DialogoCerrar();
            Close();
        } 
       if (usuario.Text == ("Demo") && (contraseña.Text == ("ABC123")))
        {
            Contador = 0;
            DialogResult dialogo = MessageBox.Show("Ingreso exitoso!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

        else
        {
            DialogResult dialogo = MessageBox.Show("Datos incorrectos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            Contador++;
        }                   
      }
    }