これは非常に大規模なプロジェクトであることが判明しており、クラスから他のフォームのオブジェクトにアクセスする必要があることが多いため、最初に、Windows フォームであるタイプ「MainForm」の program.cs クラスに静的変数を作成します。
DataManger.cs クラスから、オブジェクト 'Program.MainFormObj = new MainForm()' をインスタンス化し、Show メソッドを呼び出してフォームを表示します。フォームの Paint イベントが終了していないように見えましたが、一部のコントロールが描画されると開始されます。おそらく、メイン スレッド (これはすべて 1 つのメイン スレッドで実行されています) が次のステートメントによって「占有」されているためです。私は、既知の問題に関係なく、 Application.DoEvents() を使用して一時的にこの問題に対抗すると考えました。私が想像したように、それは機能しましたが、ある程度しか機能しませんでした. MessageBox.Show() のようなブロッキング メソッドを配置すると、完全に完璧なフォームをバックグラウンドで表示できますが、[OK] を押すとすぐにアプリケーション全体が終了します。
私は本当に立ち往生しています。こことGoogleの両方を使用して広範な検索を行ったにもかかわらず、適切な答えが見つかりません。私はこのスレッドを実行しました: Form.Show() は子コントロールを表示していませんが、指定されたソリューションは私のソリューションには適していません。どんな助けでも大歓迎です、ありがとう。