Telerik WinForms:双击无法区分单击
问题描述:
我们继承了一个使用RADGrid的项目。它同时具有启用双击和单击的事件。Telerik WinForms:双击无法区分单击
但当的DoubleClick被解雇,因此被点击并CellBeginEdit,...
我想取消点击,CellBeginEdit或他人的DoubleClick时触发。
答
我有一个从我的项目中用作网格控件的Telerik.WinControls.UI.RadGridView的继承类表。
这种简历去解决问题所需要的:
public partial class Sheet : Telerik.WinControls.UI.RadGridView
{
//System Time to wait between Click and DoubleClick
private int _doubleClickTime = 500;
private bool _doubleClickRaised = false;
private bool _doubleClickCancelEdit = false;
public void FpSpread()
{
_doubleClickTime = System.Windows.Forms.SystemInformation.DoubleClickTime;
//...
}
protected override void OnMouseDoubleClick(MouseEventArgs e)
{
_doubleClickRaised = true;
_doubleClickCancelEdit = true;
base.OnMouseDoubleClick(e);
}
protected override void OnMouseClick(MouseEventArgs e)
{
//Doing what Telerik doesn't
//Wait system time needed for DoubleClick
System.Threading.Thread.Sleep(_doubleClickTime + 10);
Application.DoEvents();
if (_doubleClickRaised)
{
_doubleClickRaised = false;
return;
}
base.OnMouseClick(e);
}
//This only when editable cells...
protected override void OnCellBeginEdit(object sender, GridViewCellCancelEventArgs e)
{
if (_doubleClickCancelEdit)
{
_doubleClickCancelEdit = false;
e.Cancel = true;
}
base.OnCellBeginEdit(sender, e);
}
}
我希望这有助于!