大体都是用两次单击的时间差来判断一下是否是双击。
SystemInformation.DoubleClickTime默认是500
第一种方式:可以参考http://blog.csdn.net/zbssoft/article/details/5602658
DateTime lastDownTime = DateTime.Now;
private void comboBox1_MouseDown(object sender, MouseEventArgs e)
{
TimeSpan sp = DateTime.Now - lastDownTime;
if (sp.Milliseconds <= SystemInformation.DoubleClickTime)
{
System.Console.WriteLine("DoubleClick");
}
else
{
System.Console.WriteLine("Click");
}
lastDownTime = DateTime.Now;
}
Derexpress中的TreeList控件触发双击事件的时候,总会触发单击事件。为了处理单击和双击的时候分别处理不同的代码,解决方案如何:
第二种方式:http://www.devexpress.com/Support/Center/p/S136873.aspx。记得是在Timer控件的Interval 属性为500
bool needHandleMouseClick = true;
private void tlDokumente_MouseClick(object sender, MouseEventArgs e) {
timer1.Start();
}
private void treeList1_MouseDoubleClick(object sender, MouseEventArgs e) {
needHandleMouseClick = false;
// perform your code here
//...
//System.Diagnostics.Process.Start(file);
}
private void timer1_Tick(object sender, EventArgs e) {
timer1.Stop();
if (needHandleMouseClick) {
// your code here
//...
// wbDokument.Navigate(file);
}
needHandleMouseClick = true;
}