Как зациклить результат диалога

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

Я использую это для создания новой формы, чтобы сделать некоторые вещи (не важно), а затем, когда я закончу с формой, я отображаю результат диалога, чтобы снова открыть эту же форму. Вопрос: как я могу продолжать открывать ту же форму? В то время как диалог дает ДА ​​держать форму открытой (как это сделать)? свойство NO разрывает цикл. Я надеюсь, что вопрос ясен.

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

Если, когда пользователь пытается закрыть frm1, вы выводите результат диалога, просто ничего не делайте, если ответ "да". В противном случае закройте frm1. Надеюсь, я правильно понял ваш вопрос.

Изменить: Когда вы хотите закрыть frm1:

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

if(res == DialogResult.No) this.Close();
Другие вопросы по тегам