| 分類:[.NET 全般]
C# で以下のプログラムを作成したのですが シングルクリックでツリーの展開等の処理は行ってほしいのですが ダブルクリック時にはツリーの展開等の処理は行ってほしくないのです。 どうすればよいのでしょうか?
private bool isFirstClick = true; private Rectangle doubleClickRectangle = new Rectangle(); private int milliseconds = 0; private bool isDoubleClick = false;
private void trv_MouseDown(object sender, MouseEventArgs e) { if (isFirstClick) { isFirstClick = false; doubleClickRectangle = new Rectangle(e.X - (SystemInformation.DoubleClickSize.Width / 2), e.Y - (SystemInformation.DoubleClickSize.Height / 2), SystemInformation.DoubleClickSize.Width, SystemInformation.DoubleClickSize.Height); Invalidate(); tmr.Start(); } else { if (doubleClickRectangle.Contains(e.Location) && milliseconds < SystemInformation.DoubleClickTime) isDoubleClick = true; } }
private void tmr_Tick(object sender, EventArgs e) { milliseconds += 100; if (milliseconds >= SystemInformation.DoubleClickTime) { tmr.Stop(); if (isDoubleClick) { MessageBox.Show("Double Click"); } else { MessageBox.Show("Single Click"); } isFirstClick = true; isDoubleClick = false; milliseconds = 0; } } |