如何循环对话框结果

本文关键字:对话框 结果 循环 何循环 | 更新日期: 2023-09-27 18:16:03

Form1 frm = new Form1();
frm1.ShowDialog();

我用它来创建新的表单来做一些事情(不重要),然后在我完成后,我显示对话框结果再次打开相同的表单。问:如何继续打开相同的表格?而对话框结果是YES保持表单打开(如何循环这个)?NO属性打破循环。我希望问题是清楚的。

如何循环对话框结果

我的建议是:

var form2 = new Form2();
do
{
    form2.ShowDialog();
}
while (form2.DialogResult == System.Windows.Forms.DialogResult.Yes);

编辑:

我从你的评论到你的问题,你想使用一个消息框,所以你可以这样做:

var form2 = new Form2();
do
{
    form2.ShowDialog();
}
while (MessageBox.Show(string.Format("The DialogResult was {0}, do you want to show the form again?", form2.DialogResult), "My Program", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes);

如果当用户试图关闭frm1时,您正在显示一个对话框结果,如果答案是肯定的,请不要做任何事情。否则关闭fr1。我希望我正确理解了你的问题。

Edit:当你想关闭frm1:

DialogResult res = MessageBox.Show("Do you want to keep this form open?", 
                                   "Close?",
                                   MessageBoxButtons.YesNo);
if(res == DialogResult.No) this.Close();