質問: 別のフォームで記述している関数を実行するには?c# お世話になります。ド素人な質問ですみません。 c#なのですが例えばform1で記述した関数(関数って呼ぶのかわかりませんが)をform2で実行するにはどのようにしたらよいのでしょうか? ネットで検索してみてもなかなかヒットしないのでこちらでお聞きします。 public partial class form1 : form { public form_ozzcalc() { initializecomponent(); } private void hoge() { ~ } } このhoge()という関数を別のフォーム(例えばform2)で呼び出して使うにはどのようにしたらよいのでしょうか? privateをpublicに変更してもform2ではこの関数を記述すると「'hoge'は現在のコンテキスト内に存在しません」と出ます。 何か参考になるサイトでも構いません。よろしくお願いいたします。
回答: この記述方法ですとform1のインスタンス経由で関数を実行します form2側からですと ((form1)application.openforms["form1"]).hoge(); といった具合です 下のように form1クラスにスタティック(静的)関数を作成すれば public static void foo() { } form2側からは form1.foo(); といった具合で実行できます messageboxのshowがこの静的実装がされています