1

FormA と FormB の 2 つのフォームがあります。

FormA には、FormB を開くボタンと終了するボタンの 2 つのボタンがあります。
FormB には、FormB を閉じて FormA を再度開くためのボタンが 1 つあります。

私のコードは次のようになります。

public class FormA
{
    private void btnOpenformB_Click(System.Object sender, System.EventArgs e)
    {
        FormB B = new FormB();
        this.Hide();
        B.Show();
    }
    private void btnExit_Click(System.Object sender, System.EventArgs e)
    {
        this.Close();
    }
}

public class FormB
{
    private void btnReopenA_Click(System.Object sender, System.EventArgs e)
    {
        FormA A = new FormA();
        this.Close();
        A.Show();
    }
}

私の問題は、FormB のボタンをクリックして FormA を再度開くときに、FormA の終了ボタンをクリックしてもデバッグが停止しないことです。私は何をすべきか?ありがとう!

4

5 に答える 5

2
public class FormA {
  private void btnOpenformB_Click(System.Object sender, System.EventArgs e) {
    FormB B = new FormB();
    this.Hide();
    B.Show(this);//Note we pass in the Owner here
  }
  private void btnExit_Click(System.Object sender, System.EventArgs e) {
    this.Close();
  }
}

public class FormB {
  private void btnReopenA_Click(System.Object sender, System.EventArgs e) {
    if(Owner!=null) Owner.Show();
    this.Close();
  }
}
于 2013-09-03T10:07:39.960 に答える
1

2 番目のフォームをダイアログ モードで開きます。

this.Hide();
B.ShowDialog();
this.Show();
于 2013-09-03T09:51:13.073 に答える
0

Application.OpenForms[] コレクションを使用: Application.OpenForms["FormA"].Show()

于 2013-09-03T09:59:36.053 に答える