Как зациклить результат диалога
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();