コードで現在のフォームを閉じ、アプリケーションを閉じずに別のフォームを開くようにします(Visual C ++ 2010 Expressの場合)。これが私が使おうとしているコードです:
Form2^ form2=gcnew Form2();
form2->Show();
this->Close();
すべてのフォームを閉じたらアプリケーションを閉じる必要があるため、機能しthis->Hide()
ません。
コードで現在のフォームを閉じ、アプリケーションを閉じずに別のフォームを開くようにします(Visual C ++ 2010 Expressの場合)。これが私が使おうとしているコードです:
Form2^ form2=gcnew Form2();
form2->Show();
this->Close();
すべてのフォームを閉じたらアプリケーションを閉じる必要があるため、機能しthis->Hide()
ません。
プロジェクトのメイン .cpp ソース コード ファイル (main() 関数を含むファイル) を開きます。その関数には、次のようなステートメントが表示されます。
Application::Run(gcnew Form1);
この Run() メソッドのオーバーロードにより、アプリのメイン フォームが閉じたときにプログラムが終了します。実行し続けたい場合は、これを別の方法で行う必要があります。単純な Run() オーバーロードを使用するのと同様に、すべてのウィンドウが閉じているときに Application::Exit() を呼び出します。これを行うには、次のように FormClosed イベントをサブスクライブします。
void ExitWhenLastWindowClosed(Object^ sender, FormClosedEventArgs^ e) {
if (Application::OpenForms->Count == 0) Application::Exit();
else Application::OpenForms[0]->FormClosed += gcnew FormClosedEventHandler(ExitWhenLastWindowClosed);
}
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Form1^ first = gcnew Form1();
first->FormClosed += gcnew FormClosedEventHandler(ExitWhenLastWindowClosed);
first->Show();
Application::Run();
return 0;
}