マウスのクリックで終了確認

マウスがクリックされると、終了確認の MessageBox を表示します。

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

プロジェクトの設定

  1. 空のプロジェクトから Form を作成して下さい。
    詳細は Form を作成する を参照して下さい。
    自動生成を使って Form を作成 の場合も同じ要領です。
  2. ソースプログラムをフォルダーに格納して、プロジェクトに取り込んで下さい。
    /**************************************************/
    /*★ Mouse の Click で終了を確認する    前田 稔 ★*/
    /**************************************************/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        public MyForm()
        {
            MouseDown += new MouseEventHandler(OnMyMouseDown);
        }
    
        private void OnMyMouseDown(object sender, MouseEventArgs e)
        {
            DialogResult rc;
            rc= MessageBox.Show("終了しますか","選択",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
            if (rc == DialogResult.Yes) Application.Exit();
        }
    }
    
    class mouse
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  3. MouseDown の EventHandler を設定します。
    マウスがクリックされると、OnMyMouseDown が呼び出されます。
    MouseDown += new MouseEventHandler(OnMyMouseDown);
  4. OnMyMouseDown で MessageBox を表示してプログラムの終了を確認します。
    Application.Exit(); が終了するソースコードで、Application.Run(mf); で始めたメッセージループを終わらせます。
    Exit(); はメッセージループに入ると有効ですが、MyForm のコンストラクタの中で Exit(); を実行しても機能しないようです。
        DialogResult rc;
        rc= MessageBox.Show("終了しますか","選択",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
        if (rc == DialogResult.Yes) Application.Exit();
        
    ESC キーで終了 も参考にして下さい。

一般的な終了確認

  1. 一般的な終了確認は、フォームクローズのイベントハンドラを用います。
  2. 終了確認は FormClosing イベントを捕まえて行います。
    [デザイン] を表示して Form を選択します。
    [デザイン] が表示されないときは、ソリューション・エクスプローラーの Form1.cs をダブルクリックして下さい。
    プロパティウインドウの [イベント(稲妻アイコン)] をクリックしてイベント一覧を表示します。
    一覧にある [FormClosing] の右のボックスに「Form_Closing」とタイプして [Enter] キーを押します。
    プログラムファイルにイベントメソッドが追加されます。
    this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing);
    直接ソースコードを修正するときは this. などは省略して次のように書きます。
    FormClosing += new FormClosingEventHandler(Form_Closing);
  3. Form_Closing メソッドです。
    e.Cancel を true に設定すると、FormClose がキャンセルされます。
            private void Form_Closing(object sender, FormClosingEventArgs e)
            {
                DialogResult rc;
                rc= MessageBox.Show("終了しますか","選択",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
                if (rc == DialogResult.No) e.Cancel = true;
            }
    

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