1

わかりました、form1 は私の「イントロ」です。form1 を閉じる必要があり、form2 を閉じると、アプリケーション全体が閉じます。私はこれが初めてなので、自分の問題をうまく説明する方法がわかりません...質問があれば..聞いてください... :)

4

3 に答える 3

4

メイン フォームを表示する前にスプラッシュ スクリーンが必要な場合に使用する別のソリューションは、次のソリューションを使用することです。

Program クラスの Main 関数には、通常、次のようなものがあります。

    [STAThread]
    static void Main(string[] ps)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());

    }

Application.Run はアプリケーションをフォームにバインドし、フォームが閉じるとアプリケーションが終了するようにします。フォーム 1 の前にフォーム 2 を表示したい場合は、次のようにします。

    [STAThread]
    static void Main(string[] ps)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form1 splash = new Form1();
        splash.ShowDialog();
        Application.Run(new Form2());
    }

この新しいコードは form2 を表示します。form2 を閉じると、form1 が表示されます。Form1 を閉じると、アプリケーションが終了します。

通常、スプラッシュ ウィンドウは別のスレッドで作成され、メイン スレッドは必要なデータをロードします。

于 2012-05-18T17:40:35.117 に答える
1

閉じる代わりに、From1 を非表示にすることができます。

Form1.hide = true
于 2012-05-18T17:31:07.140 に答える
0

フォームの OnClosing メソッドをオーバーライドする必要があります...

protected override void OnClosing(CancelEventArgs e)
{
     e.Cancel = true;
     this.Hide();
}
于 2012-05-18T17:35:06.467 に答える