Page Navigate

Button のクリックで、ページからページに Navigate します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. Button のクリックで、メインページからアニメーションページに Navigate します。
    navigate は[船舶・航空機などを]操縦するの意味で使われるのですが、今回は次々とページを移り変わる(遷移する)プログラムを作成します。
    Form Size(Max & Min) を参照して、美人とギャルのアニメーションページを作成して下さい。
    Form のプロパティからサイズを最大化して下さい。
  2. アニメーションが重複して呼び出されるのを禁止しています。
    Form1 から美人のアニメーションを呼び出すときに this(Form1) をパラメータとして渡します。
    呼び出す前に Form1 を Hide() で隠して、Anime1 を画面いっぱいに表示します。
        Form2 Anime1 = null;
        private void Button1_Click(object sender, EventArgs e)
        {
            if ((Anime1 == null) || Anime1.IsDisposed)
            {   Anime1 = new Form2(this);   //Form1 をパラメータで渡す
                this.Hide();                //Form1 を隠す
                Anime1.Show();              //Anime1 を呼び出す
            }
        }
    
    同様にギャルのアニメーションを呼び出すときにも Form1 をパラメータとして渡します。
        Form3 Anime2 = null;
        private void Button2_Click(object sender, EventArgs e)
        {
            if ((Anime2 == null) || Anime2.IsDisposed)
            {   Anime2 = new Form3(this);
                this.Hide();
                Anime2.Show();
            }
        }
    
  3. Form2(Form3) では、渡された form1 を保存して、Return Button がクリックされたときに、これを参照して Form1 に戻ります。
            Form1 MyForm1;
            public Form2(Form1 form1)
            {   MyForm1 = form1;
    
  4. Form2(Anime1), Form3(Anime2) に二個のボタンを張り付けます。
  5. Form2 のボタンクリックのイベントハンドラです。
    Return Button のクリックで Form1 に戻ります。
    Form2 のアニメーションを停止して Form1 を画面いっぱいに表示します。
    Form3 も同様です。
        private void Button1_Click(object sender, EventArgs e)
        {
            this.Dispose();     //アニメーションクラスを解放する
            MyForm1.WindowState = FormWindowState.Maximized;
            MyForm1.Show();     //Form1 に戻る
        }
    
  6. Form2 の Next Button のクリックで次のアニメーションページに遷移します。
    Form2(Anime1)のアニメーションを停止して Form3(Anime2)を画面いっぱいに表示します。
        private void Button2_Click(object sender, EventArgs e)
        {
            this.Dispose();     //Anime1 Class を解放する
            Form3 Anime2 = new Form2(MyForm2);
            Anime2.Show();      //Anime2 を呼び出す
        }
    
    Form3 の Next Button も同様です。
        private void Button2_Click(object sender, EventArgs e)
        {
            this.Dispose();     //Anime2 Class を解放する
            Form2 Anime1 = new Form2(MyForm1);
            Anime1.Show();      //Anime1 を呼び出す
        }
    
  7. Form1 のボタン1をクリックすると美人のアニメーションページが表示されます。
    Form1 のボタン2をクリックするとギャルのアニメーションページが表示されます。
    美人のアニメーションから Return Button をクリックすると Form1 に戻ります。
    Next Button をクリックするとギャルのアニメーションが表示されます。
    ギャルのアニメーションから Return Button をクリックすると Form1 に戻ります。
    Next Button をクリックすると美人のアニメーションが表示されます。
    プログラムの終了は Form1 を閉じます。
    もし実行中のアニメーションがあっても Form1 を閉じると全て終了します。

超初心者のプログラム入門(C# Frame Work)