如何循环对话结果

时间:2011-11-26 18:20:33

标签: c# loops dialogresult

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

我用它来创建一个新的表单来做一些事情(不重要),然后在我完成表单后我显示dialogresult再次打开相同的表单。 问题:我怎样才能继续打开相同的表格? 虽然Dialogresult是YES,但保持表单打开(如何循环)? NO属性打破了循环。 我希望这个问题很清楚。

2 个答案:

答案 0 :(得分:2)

以下是我的建议:

var form2 = new Form2();

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

编辑

我从你的评论中提到你想要使用MessageBox的问题,所以你可以这样:

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);

答案 1 :(得分:1)

如果当用户尝试关闭frm1时,您正在显示对话结果,如果答案为是,则不要做任何事情。否则关闭frm1。我希望我能正确理解你的问题。

修改:如果要关闭frm1:

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

if(res == DialogResult.No) this.Close();