子フォームから親フォームの関数を呼び出す方法

アプリケーションを作っていると、フォームをいくつか作らなくてはならなくなりますが、親のフォームがあって、そのフォームの関数を子のフォームから呼び出す必要が出てきます。

そんな時には、以下の方法でできるそうです。

仮定

Form1が親フォーム、Form2が子フォーム

親フォームに関数を定義する

まずは親フォームに呼び出したい関数を定義します。

public void hoge()
{

}

次にForm1からForm2を呼び出す部分を定義

Form2 frm2 = new Form2();
frm2.Owner = this; ///現在の親フォームを指定する
frm2.Show();

Ownerプロパティを設定するのがポイントらしい。

子フォームから親フォームを呼び出す。

最終的には、以下のように子フォームから呼び出す。

((Form1) this.Owner).hoge();

となる。

なるほどね~~

勉強になります!(^^;)


コメントを残す

メールアドレスが公開されることはありません。

This site uses Akismet to reduce spam. Learn how your comment data is processed.