私は C# が初めてで、別のクラスからフォームを編集する方法を理解しようとしています。フォームは、次のように、デフォルトの VS アプローチによって作成されます。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Form1 にある label1 フィールドを更新する方法のテストとして、Form1.cs ファイルにメソッドを作成しました。メソッドは次のとおりです。
public void UpdateLabel(string state = "Changed Text")
{
label1.Text = state;
}
私が抱えている問題は、Application.Run コマンドが Form1 型の名前付きオブジェクトを提供しないことです。したがって、Program.cs から UpdateLabel メソッドをトリガーする場合は、次のようにします。
XXX.UpdateLabel();
フォームにアクセスするためのオブジェクトがありません。フォームを手動で作成していた場合、これでうまくいくと思います。
Form1 myForm = new Form1();
myForm.UpdateLabel();
Windows フォーム アプリケーションが提供する Application.Run(Form1) を使用して、作成中のフォーム オブジェクトにアクセスするにはどうすればよいですか? また、これはこの種の問題に対して私が取るべきアプローチですか、それともより良い方法がありますか?