3

form2がform1で閉じられていることを検出しようとしています。私はこれまでにこれを持っています

    private void AddStageBtn_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.ShowDialog();
        if (form2.IsDisposed)
        {
            MessageBox.Show("it was closed!");
        }
    }

助言がありますか?再度、感謝します!

4

2 に答える 2

2

この特定の状況では

private void AddStageBtn_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.ShowDialog();
    MessageBox.Show("it was closed!");
}

正常に動作します。form2が開いているときにform1内でアクションを実行できるようにする場合は、ShowDialogの代わりにShowを使用する必要があります。次に、form1内で閉じられたフォームのハンドラーを作成できます。

form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
于 2012-06-05T17:44:50.343 に答える
2

form2のFormClosedイベントに準拠します。

あなたがそれを作成するところはどこでもします:

form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);

次に、メソッドを作成します。

void form2_FormClosed(object sender, FormClosedEventArgs e)
{
    // Do whatever you want here
}

また、どちらかのフォームを使用できるようにする場合は、.Show()代わりに使用することをお勧めします。そうしないと、閉じられるまで使用できなくなります(これは、探している動作ではないと想定しています)。.ShowDialog()form1form2

于 2012-06-05T17:45:03.363 に答える