重複の可能性:
Winforms でのユーザー ワークフローの制御
というわけで、C#を使ってWebインストーラーを作っています。問題は、通常、初めてフォームをロードすると、Vista+ で何らかの効果が発生することです。見栄えが悪く、プログラムに複数の形式があることをユーザーに理解させます。
[次へ] ボタンを押した後の典型的なインストーラーでは、別のフォームをロードしません (または使用しますが、理解できません)。
私はいくつかの方法を試しましたが、IMO の最良の方法は次のとおりです。すべてのフォームの WindowState を Minimized に設定し、Program.cs で 1 つずつ表示および非表示にします。その後、再びノーマルにします。
また、フォームを一度ロードするクラスを作成しました。
class form
{
public static Form1 form1 = new Form1();
public static Form2 form2 = new Form2();
public static Form3 form3 = new Form3();
public static Form4 form4 = new Form4();
public static Form5 form5 = new Form5();
}
しかし、すべてが理論通りにいかないこともあります。
問題は; フォームを最小化することは可能ですが、通常に戻すことはできません。Program.cs で実行しても効果はありません。そして、Next ボタンで WindowState を通常に設定します。フォームを表示する前にコーディングすると、フォームが見えないように見えます。フォームを表示した後にコーディングすると、Windows は通常の効果よりも最悪の別の効果をもたらします。
そして、これはフォームをロードするために使用するコードです([次へ]ボタンで):
form.form2.StartPosition = FormStartPosition.Manual;
form.form2.Location = this.Location;
form.form2.WindowState = FormWindowState.Normal;
form.form2.Show();
form.form2.Button2.Focus();
this.Hide();