C# &引用;“别再问我了”;在确认弹出窗口中

C# &引用;“别再问我了”;在确认弹出窗口中,c#,winforms,C#,Winforms,我有一个windows应用程序,它有一个onw windows窗体。当我关闭表单时,我想添加一个确认框,询问“是否要关闭此表单?”如何在c#?中的确认弹出窗口中显示“不再询问我”创建一个有标签、复选框和OK按钮的表单 无论何时关闭此表单:(单击“确定”按钮);确保没有其他可能关闭此表单的方法 private void OK_Click(object sender, eventArgs e) { DoCheck(); DialogResult = DialogResult.OK; //this

我有一个windows应用程序,它有一个onw windows窗体。当我关闭表单时,我想添加一个确认框,询问“是否要关闭此表单?”如何在c#?

中的确认弹出窗口中显示“不再询问我”创建一个有标签、复选框和OK按钮的表单

无论何时关闭此表单:(单击“确定”按钮);确保没有其他可能关闭此表单的方法

private void OK_Click(object sender, eventArgs e)
{
 DoCheck();
 DialogResult = DialogResult.OK; //this closes your form
}

private void DoCheck()
{
 if(checkBox1.Checked)
 {
  //Set your value on true
  MyValues.Confirm = true;
 }
}

首先,在我创建的
解决方案中,您需要一个
,它是
构象
,具有三个
静态
公共属性
\u askUserAgain
\u yes
\u no
,用于记住用户偏好

public class Confirmation
{
    public static bool _askUserAgain = true;
    public static bool _yes = false;
    public static bool _no = false;
}
接下来是Form1的
FormClosing
事件

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
  if (Confirmation._askUserAgain == true)
   {
     e.Cancel = true;
     Form2 form2 = new Form2();
     form2.Show();
   }
  else
  {
     e.Cancel = false;
  }
}
下一个内部
Fomr2
,如图所示:

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        Confirmation._askUserAgain = false;
    }

    private void Yes_Click(object sender, EventArgs e)
    {
        Confirmation._yes = true;
        Confirmation._no = false;
        Form1 parentForm = Application.OpenForms["Form1"] as Form1;
        if (parentForm != null)
        {
            parentForm.Hide();
        }
        this.Hide();
    }

    private void No_Click(object sender, EventArgs e)
    {
        Confirmation._no = true;
        Confirmation._yes = false; 
        if (Confirmation._no)
        {
            this.Hide();
            Form1 parentForm = Application.OpenForms["Form1"] as Form1;
            parentForm.Show();
        }
    }


您可以创建另一个表单,并将该设置存储在配置或用户设置中,然后从中读取,如果该设置设置为TrueRealy,则显示“不再询问我”对话框?你为什么要问这个?您是否有需要保存的数据?你为什么要猜测用户的意图?(是的,这是真的,我讨厌问我这个问题的节目)@Steve,那么你很幸运,这个节目只想问你一次!是的,“曾经”比“曾经”好。但“从不”总比“一次”好。如果没有什么可以挽救的,那就是:哦