2017-04-27 10 views
0

RADGridを使用するプロジェクトを継承しました。ダブルクリックとシングルクリックの両方のイベントが有効になっています。Telerik WinForms:シングルクリックで区別できないダブルクリック

しかし、DoubleClickのが発射されるとき、その

が私をDoubleClickが発射されたときにクリックし、CellBeginEdit等をキャンセルしたい...、クリックしてCellBeginEditです。

答えて

0

私はプロジェクトでグリッドコントロールとして使用するTelerik.WinControls.UI.RadGridViewのInheritedクラスシートを持っています。

この問題を解決するために必要なものを再開する:

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); 
    } 

} 

私はこれが役に立てば幸い!

関連する問題