※ ChatGPTを利用し、要約された質問です(原文:別のフォームで記述している関数を実行するには?C#)
別のフォームで記述している関数を実行するには?C#
このQ&Aのポイント
C#で別のフォームで記述した関数を実行する方法について教えてください。
Form1で定義されている関数をForm2で使いたい場合、どのようにすればよいでしょうか?
Form2でForm1で作成した関数を呼び出す方法を教えてください。
別のフォームで記述している関数を実行するには?C#
お世話になります。ド素人な質問ですみません。
C#なのですが例えばForm1で記述した関数(関数って呼ぶのかわかりませんが)をForm2で実行するにはどのようにしたらよいのでしょうか?
ネットで検索してみてもなかなかヒットしないのでこちらでお聞きします。
public partial class Form1 : Form
{
public Form_OzzCalc()
{
InitializeComponent();
}
private void hoge()
{
~
}
}
このhoge()という関数を別のフォーム(例えばForm2)で呼び出して使うにはどのようにしたらよいのでしょうか?
privateをpublicに変更してもForm2ではこの関数を記述すると「'hoge'は現在のコンテキスト内に存在しません」と出ます。
何か参考になるサイトでも構いません。よろしくお願いいたします。
お礼
ありがとうございます! ((Form1)Application.OpenForms["Form1"]).hoge(); としてForm1のほうをpublic void hoge()にしたらうまく動作しました。 なぜかstaticをつけたらhoge()関数の中がエラーになりましたが、外したらうまくいきました。