【问题标题】:How to loop the dialogresult如何循环对话结果
【发布时间】:2011-11-26 18:20:32
【问题描述】:
Form1 frm = new Form1();
frm1.ShowDialog();

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

【问题讨论】:

  • "i display dialogresult" 你显示MessageBox吗?
  • 类似这样的 DialogResult rez = MessageBox.Show() //此处自定义文本

标签: c# loops dialogresult


【解决方案1】:

这是我给你的建议:

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

【讨论】:

  • 据我了解您的问题,只要被调用表单的 DialogResult 为 Yes,您就想循环。所以我的代码显示了表单,如果 DialogResult 是 Yes,它会循环并再次显示表单。如果不是 Yes,则循环停止。
  • 我根据对您问题的评论更改了示例。
【解决方案2】:

如果当用户尝试关闭 frm1 时,您正在显示一个对话结果,如果答案是肯定的,则不要执行任何操作。否则关闭frm1。希望我正确理解了您的问题。

编辑:当你想关闭frm1时:

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

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

【讨论】:

  • 我尝试使用 switch case 但它只工作一次,对话框只显示一次,无论我做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多