2つのFormを連携させる方法

お互いに違う機能のFormを二つ同時に制御したい場合どうするか。


操作までの流れは単純で

1:2つめ(子)のFormを作成(追加→WindowsフォームでOK)
2:親と子にお互いを参照するための変数を定義。
3:親が子を作成し保持。子は親を保持。
4:後は自由に参照を通じてお互いを操作。


こんだけ?
たしかSaintKildaではこうやってたような気がする。


■1

■2


class ParentForm
{
public ChildForm mChildForm = null;
// 適当にプロパティ定義
};

class ChildForm
{
public ParentForm mParentForm = null;
// 適当にプロパティ定義
};

■3

//Form1(親)のコンストラクタでも何でもいいので子供を作成
public ParentForm()
{
// 子供を作成し保持する
mChildForm = new ChildForm();
// 子供には親を持たせる
mChildForm.ParentForm = this;
}

■4

class ParentForm
{
// 親子同時に隠れるなら
public void Hide()
{
mChildForm.Hide();
}
}


class ChildForm
{
// 子供が泣いたら
public void Cry()
{
    // 親が叱る
mParentForm.Scold();
}
}

みたいな感じかな〜。特にこれといって特殊なことはやってないはず。
はじめは色々考えすぎて手がつかなかった。