· 

Visual C# dataGridView でマウスのクリックとダブルクリックの判定

dataGridViewでマウスのクリックとダブルクリックとを判定するには次のようにします。


    public partial class Form1 : Form
    {
        #region Grobal Variable & Constant
        private Timer timer1 = new Timer() { Enabled = false };
        #endregion

        #region Intialization
        public Form1()
        {
            InitializeComponent();
            timer1.Tick += new EventHandler(this.OnTick_Formstimer1);
        }
        #endregion

        #region timer1 OnTick
        public void OnTick_Formstimer1(object sender, EventArgs e)
        {
            // タイマーを停止
            timer1.Enabled = false;
            timer1.Stop();
            //マウスクリックの処理をここで行う
            singleClick();
        }
        #endregion

        #region dataGridView1 Mouse Click
        private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
        {
            // タイマー開始
            timer1.Enabled = true;
            // システムに設定されたダブルクリックの判定時間間隔を取得
            timer1.Interval = SystemInformation.DoubleClickTime;
            timer1.Start();
        }
        #endregion

        #region dataGridView1 Mouse DoubleClick
        private void dataGridView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {  
            // タイマー停止
            if (timer1.Enabled)
            {
                timer1.Enabled = false;
                timer1.Stop();
            }
            // マウスダブルクリックの処理をここで行う
            doubleClick();
        }
        #endregion

        #region singleClick
        private void singleClick()
        {
                //マウスクリック時の実際の処理
        }
        #endregion
        
        #region doubleClick
        private void doubleClick()
        {
                //マウスダブルクリック時の実際の処理
        }      
    }