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

これを使用して新しいフォームを作成し、いくつかのことを行います(重要ではありません)。フォームの操作が完了したら、dialogresult を表示して同じフォームを再度開きます。質問: どうすれば同じフォームを引き続き開くことができますか? Dialogresult が YES である間、フォームを開いたままにします (これをループする方法)? NO プロパティはループを中断します。質問が明確であることを願っています。

4

2 に答える 2

2

これがあなたへの私の提案です:

var form2 = new Form2();

do
{
    form2.ShowDialog();
}
while (form2.DialogResult == System.Windows.Forms.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);
于 2011-11-26T18:29:14.567 に答える
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();
于 2011-11-26T18:27:44.253 に答える