私はこの質問を読んだことがありますが、 GUI以外のスレッドC#内からフォームを作成する方法は役に立ちませんでした。
プレーヤーのリストを含むテーブルのリストがあり、各プレーヤーには独自のフォームがあります(player.csとplayerform.csで分離しました)
問題は、テーブルをフォームから継承させた場合(フォームを表示し、visible = falseにするため、表示されない)、Methodinvokerを作成できることです。
//table.cs
class Table : Form{
var player = Players.First();
this.Invoke(new MethodInvoker(player.ShowForm));
//player.cs
void ShowForm() {
var form = new PlayerForm();
form.show();
}
これは問題や副作用なしに機能しています。しかし、少し厄介です。Invokeを使用するためだけに、FormからClassを継承します。(私のテーブルにはフォームは必要ないので、これを修正したい)
フォームがない場合、どうすればinvokeを使用できますか?
ありがとう