GrapeCity MultiRow for Windows Forms 11.0J
Escを2回押した場合に行データが削除されるのを禁止する

現在のセルが編集状態でない場合にEditingActions.CancelEditプロパティを実行すると、行レベルの編集がキャンセルされます。このキャンセルを禁止するには、現在のセルの編集状態とダーティ状態をチェックする必要があります。
サンプルコード
次のコードは、現在のセルが編集中で、なおかつダーティ状態の場合にキャンセルアクションを実行します。
Imports GrapeCity.Win.MultiRow

Public Class CustomCancelAction
  Implements IAction

  Public Function CanExecute(ByVal target As GcMultiRow) As Boolean Implements IAction.CanExecute
    Return True
  End Function

  Public ReadOnly Property DisplayName() As String Implements IAction.DisplayName
    Get
      Return Me.ToString()
    End Get
  End Property

  Public Sub Execute(ByVal target As GcMultiRow) Implements IAction.Execute
    If target.IsCurrentCellInEditMode Then
      If target.IsCurrentCellDirty Then
        ' アクティブなセルが編集中でダーティ状態の場合のみキャンセルアクションを実行します。
        EditingActions.CancelEdit.Execute(target)
      End If
    End If
  End Sub
End Class
using System;
using GrapeCity.Win.MultiRow;

public class CustomCancelAction : IAction
{
  public bool CanExecute(GcMultiRow target)
  {
    return true;
  }

  public string DisplayName
  {
    get { return this.ToString(); }
  }

  public void Execute(GcMultiRow target)
  {
    if (target.IsCurrentCellInEditMode == true)
    {
      if (target.IsCurrentCellDirty == true)
      {
        // アクティブなセルが編集中でダーティ状態の場合のみキャンセルアクションを実行します。
        EditingActions.CancelEdit.Execute(target);
      }
    }
  }
}

   
関連トピック

 

 


© 2008 GrapeCity inc. All rights reserved.