-4

現在の表示の前のフォームを非表示にするウィンドウを閉じる X コントロールを作成したいと思います。

form1で私は得ました:

private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.Tag = this;
    form2.Show(this);
    Hide();
}

そして、XIをクリックすると、以前を表示して現在を非表示にしたいと思います。

4

3 に答える 3

2

これだけをオーバーライドForm.OnFormClosing()しないでください。イベントはあなたForm.FormClosingにこの機能を提供します:

void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
  // Prevent the user from closing this window, minimize instead.
  if (e.CloseReason == CloseReason.UserClosing)
  {
    this.WindowState = FormWindowState.Minimized;
    e.Cancel = true;
  }
}
于 2013-01-19T22:22:22.057 に答える
1

これを行うには、 OnFormClosingをオーバーライドできます。

 protected override void OnFormClosing(FormClosingEventArgs e)
{
    if (e.CloseReason == CloseReason.WindowsShutDown) return;

    // DO WHATEVER HERE
}
于 2013-01-19T21:48:10.110 に答える
0

インスタンス化されたフォームを追跡する必要があります。

// Program.cs

public static FormA Instance;

public static void Main()
{
    Instance = new FormA();
    Instance.Show();
}

それで:

// FormB.cs

private void button1_Click(object sender, EventArgs e)
{
    Hide(); // Hide current...
    Program.Instance.Show(); // Show previous...
}
于 2013-01-19T21:52:08.380 に答える