Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何循环对话框结果_C#_Loops_Dialogresult - Fatal编程技术网

C# 如何循环对话框结果

C# 如何循环对话框结果,c#,loops,dialogresult,C#,Loops,Dialogresult,我用它来创建新表单来做一些事情(不重要),然后在完成表单后,我显示dialogresult以再次打开同一表单。 问题:我怎样才能继续打开相同的表单? 当对话框结果为“是”时,保持窗体打开(如何循环)?NO属性中断循环。 我希望问题是清楚的。如果用户试图关闭frm1时,您正在显示一个对话框结果,只要回答是“是”,就不要做任何事情。否则关闭frm1。我希望我正确理解了你的问题 编辑:要关闭frm1时: Form1 frm = new Form1(); frm1.ShowDialog(); 以下是我

我用它来创建新表单来做一些事情(不重要),然后在完成表单后,我显示dialogresult以再次打开同一表单。 问题:我怎样才能继续打开相同的表单? 当对话框结果为“是”时,保持窗体打开(如何循环)?NO属性中断循环。
我希望问题是清楚的。

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

编辑:要关闭frm1时:

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

以下是我给你的建议:

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

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

我从您对问题的评论中得知,您希望使用MessageBox,因此您可以这样做:

var form2 = new Form2();

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

我尝试使用switch case,但它只工作一次,无论我做什么,对话框都只显示一次。“我显示dialogresult”您是否显示
MessageBox
?类似于此的dialogresult rez=MessageBox.Show()//自定义文本据我所知,您的问题,只要被调用表单的DialogResult为Yes,就可以循环。因此,我的代码显示表单,如果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);