0

次のコードがあります。

int main(array<System::String ^> ^args)
{
    // Enabling Windows XP visual effects before any controls are created
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 

    // Create the main window and run it
    Form1 ^ form = gcnew Form1;
    form->ShowDialog();

    //Starts the .jar file
    ServerProcess *aServer = new ServerProcess();
    aServer->NewServer();

    return 0;
}    

問題は、プログラムがウィンドウ ( Form1 ^ form = gcnew Form1; form->ShowDialog();) を開きますが、フォームを閉じるまで他のコード行を実行しないことです。

なぜこれが起こるのですか?どうすればこれを修正できますか?

どんな助けでも大歓迎です。前もって感謝します。

編集:

ShowDialog()「Cheers and hth. -Alf」のおかげで、フォームを閉じるまでコードが実行されないことがわかりました。Application::Run(gcnew Form1())同じ動作になります。

4

2 に答える 2

0

ドキュメントには次のように記載されています。

このメソッドを使用して、アプリケーションでモーダル ダイアログ ボックスを表示できます。このメソッドが呼び出されると、その後のコードは、ダイアログ ボックスが閉じられるまで実行されません。

ポップアップが閉じられるまでブロックするのではなく、コードを続行したい場合は、 Form.ShowDialog の代わりに Form.Show を使用することを検討ください

于 2013-03-15T03:05:26.787 に答える
0

「このメソッドが呼び出されると、それに続くコードはダイアログボックスが閉じられるまで実行されません。」 次のコードをブロックしたくない場合は、別のスレッドで ShowDialog を呼び出す必要があります。

于 2013-03-15T03:27:34.327 に答える