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 でないことも確認しました。なぜこれが起こるのか誰か説明できますか?