|
分類:[.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;
}
}
|