C# &引用;“别再问我了”;在确认弹出窗口中
我有一个windows应用程序,它有一个onw windows窗体。当我关闭表单时,我想添加一个确认框,询问“是否要关闭此表单?”如何在c#?中的确认弹出窗口中显示“不再询问我”创建一个有标签、复选框和OK按钮的表单 无论何时关闭此表单:(单击“确定”按钮);确保没有其他可能关闭此表单的方法C# &引用;“别再问我了”;在确认弹出窗口中,c#,winforms,C#,Winforms,我有一个windows应用程序,它有一个onw windows窗体。当我关闭表单时,我想添加一个确认框,询问“是否要关闭此表单?”如何在c#?中的确认弹出窗口中显示“不再询问我”创建一个有标签、复选框和OK按钮的表单 无论何时关闭此表单:(单击“确定”按钮);确保没有其他可能关闭此表单的方法 private void OK_Click(object sender, eventArgs e) { DoCheck(); DialogResult = DialogResult.OK; //this
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,那么你很幸运,这个节目只想问你一次!是的,“曾经”比“曾经”好。但“从不”总比“一次”好。如果没有什么可以挽救的,那就是:哦