WinForms アプリケーションでの次のコードの動作を理解しようとしています。
Form1 と Form2 の 2 つのフォームがあります。Form2 内から Form1 を閉じると、Form2 も閉じられます。どちらも Owner プロパティが null に設定されていることを確認しました。
以下のコードから Form2 も閉じられる理由を誰でも説明できますか?
フォーム1:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
フォーム2:
public partial class Form2 : Form
{
Form1 f1;
public Form2(Form1 f1)
{
InitializeComponent();
this.f1 = f1;
}
private void button1_Click(object sender, EventArgs e)
{
f1.Close();
}
}
Program.cs
static void Main()
{
Form1 f1 = new Form1();
f1.Size = new Size(0, 0);
f1.Show();
Form2 f2 = new Form2(f1);
f2.ShowDialog();
Application.Run(new MainForm());
}
Form2 のボタンをクリックすると、Form1 と Form2 の両方が閉じられます。ボタンが Form2 の okbutton または cancelbutton でないことも確認しました。なぜこれが起こるのか誰か説明できますか?