マウスのクリックを検出する

マウスのクリックを検出して MessageBox を表示します。

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

プロジェクトの設定

  1. マウスのクリックを検出する方法には、デリゲートする方法とオーバーライドする方法があります。
    デリゲートの設定は メソッドの追加と削除 を参照して下さい。
    オーバーライドの説明は メソッドのオーバーライド を参照して下さい。
    どちらを使うかは、そのときの気分と好みの問題でしょうか。 (^_^;)
    ここではデリゲートする方法を説明しています。
  2. 空のプロジェクト(Click)を作成して下さい。
    詳細は Form を作成する を参照して下さい。
  3. 下記のプログラムを Click.cs の名前でプロジェクトのフォルダーに格納して、プロジェクトに取り込んで下さい。
    /********************************************/
    /*★ 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)
        {
            MessageBox.Show("Mouse がクリックされました");
        }
    }
    
    class mouse
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  4. new MyForm() で Form を継承した MyForm Object Class を生成します。
    Application.Run(mf) で MyForm に制御を渡し、メッセージループに入ります。
  5. MouseDown の EventHandler を設定します。
    Form 上でマウスがクリックされると、OnMyMouseDown が呼び出されます。
    MouseDown += new MouseEventHandler(OnMyMouseDown);
  6. OnMyMouseDown で MessageBox を表示してマウスがクリックされたことを確認します。
    MessageBox.Show("Mouse がクリックされました");
  7. 左クリック/右クリックは、次のように調べて下さい。
        private void OnMyMouseDown(object sender, MouseEventArgs e)
        {   if (e.Button == MouseButtons.Left)  //マウスの左ボタン
            {
               ・・・
            }
            if (e.Button == MouseButtons.Right) //マウスの右ボタン
            {
               ・・・ 
            }
    
  8. 自動生成を使って Form を作成 の場合です。
    Form1.cs のデザイン画面からプロパティのイベント(稲妻アイコン)をクリックします。
    [Mouse Down] の右にあるコンボボックスに "OnMyMouseDown" とタイプするとイベントハンドラが追加されます。
    OnMyMouseDown は上記と同じです。
        private void OnMyMouseDown(object sender, MouseEventArgs e)
        {
            MessageBox.Show("Mouse がクリックされました");
        }
    
    コンパイル&実行して、マウスをクリックしてみて下さい。

【演習】

  1. Mouse がクリックされた座標を取得するソースコードです。
        private void OnMyMouseDown(object sender, MouseEventArgs e)
        {
            int xp,yp;
            xp = e.X;
            yp = e.Y;
    
  2. MessageBox でクリックされた座標も一緒に表示して下さい。
    int 型を String 型に変換するときは Convert.ToString() を使います。

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