ShowDialog() を使用した後、閉じるまで親フォームを開いたままにしておくことに問題があります。
私はこれについて試してきましたが、取得できませんでした。私が見逃していたかもしれない単純なものがあると思います。これを登録するのを手伝ってくれませんか?
問題は、フォーム 1 があり、ボタンを 1 つ押すとフォーム 2 が開くことです。Form 2 でいくつかの検証を行い、検証を確認します。検証に合格しない場合は、[再試行] と [キャンセル] を使用して DialogBox フォームを開きます。再試行を押すと、コントロールはフォーム 2 に戻り、フォーム 2 は閉じません。[キャンセル] を押すと、DialogBox フォームと Form 2 の両方が閉じます。今、私が何を押しても、両方のフォームが閉じます。
オンラインで調べましたが、解決策が見つかりませんでした。この解決策を実行しましたが、両方のフォームがまだ閉じています。 ネストされた子ダイアログを閉じると親ダイアログも閉じるのはなぜですか?
私のコード:(サンプルシナリオ)
フォーム 1:
private void button1_Click(object sender, EventArgs e)
{
Form2 testForm = new Form2();
DialogResult dialogResult = new DialogResult();
dialogResult = testForm.ShowDialog(this);
if(dialogResult == DialogResult.OK)
{
//Do something
}
}
フォーム 2:
private void button1_Click(object sender, EventArgs e)
{
DialogResult validDataResult = MessageBox.Show("Invalid Data Entered. Please provide the correct data."
, "Data Management"
, MessageBoxButtons.RetryCancel);
if (validDataResult == DialogResult.Cancel)
{
this.Close();
}
}