• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:別のフォームで記述している関数を実行するには?C#)

別のフォームで記述している関数を実行するには?C#

このQ&Aのポイント
  • C#で別のフォームで記述した関数を実行する方法について教えてください。
  • Form1で定義されている関数をForm2で使いたい場合、どのようにすればよいでしょうか?
  • Form2でForm1で作成した関数を呼び出す方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

この記述方法ですとForm1のインスタンス経由で関数を実行します Form2側からですと ((Form1)Application.OpenForms["Form1"]).hoge(); といった具合です 下のように Form1クラスにスタティック(静的)関数を作成すれば public static void foo() { } Form2側からは Form1.foo(); といった具合で実行できます MessageBoxのShowがこの静的実装がされています

suffre
質問者

お礼

ありがとうございます! ((Form1)Application.OpenForms["Form1"]).hoge(); としてForm1のほうをpublic void hoge()にしたらうまく動作しました。 なぜかstaticをつけたらhoge()関数の中がエラーになりましたが、外したらうまくいきました。