GrapeCity.Win.MultiRow.v80 アセンブリ > GrapeCity.Win.MultiRow 名前空間 : ActionList クラス |
アクションのリストを実行するために、ActionListを1つのキーにバインドできます。
ActionListは、既存のアクションを組み合わせて新しいActionを定義する場合に使用します。いずれかのアクションが実行できない場合、そのActionListは実行できません。ActionListを実行すると、各ActionのCanExecuteメソッドが呼び出されます。アクションが実行可能な場合はそのExecuteメソッドが呼び出され、実行が完了したら次のActionに移ります。たとえば、SelectionActions.SelectAllとEditingActions.Copyを組み合わせて"CopyAll"アクションリストを作成できます。
void Form1_Load(object sender, EventArgs e) { gcMultiRow1.Template = Template.Default; gcMultiRow1.RowCount = 5; // Register another action to a existent key. Unregister old key first. this.gcMultiRow1.ShortcutKeyManager.Unregister(Keys.Enter); // Register to new action. this.gcMultiRow1.ShortcutKeyManager.Register(new EditThenMoveNextAction(), Keys.Enter); // Register an action list. Select all first, and then, copy. this.gcMultiRow1.ShortcutKeyManager.Register(new ActionList(SelectionActions.SelectAll, EditingActions.Copy), Keys.Control | Keys.Shift | Keys.C); } class EditThenMoveNextAction : Action { public override bool CanExecute(GcMultiRow target) { return true; } protected override void OnExecute(GcMultiRow target) { if (target.IsCurrentCellInEditMode == false && EditingActions.BeginEdit.CanExecute(target)) { EditingActions.BeginEdit.Execute(target); } else { SelectionActions.MoveToNextCell.Execute(target); } } }
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load gcMultiRow1.Template = Template.Default gcMultiRow1.RowCount = 5 ' Register another action to a existent key. Unregister old key first. Me.gcMultiRow1.ShortcutKeyManager.Unregister(Keys.Enter) ' Register to new action. Me.gcMultiRow1.ShortcutKeyManager.Register(New EditThenMoveNextAction(), Keys.Enter) ' Register an action list. Select all first, and then, copy. Me.gcMultiRow1.ShortcutKeyManager.Register(New ActionList(SelectionActions.SelectAll, EditingActions.Copy), Keys.Control Or Keys.Shift Or Keys.C) End Sub Private Class EditThenMoveNextAction Inherits Action Public Overloads Overrides Function CanExecute(ByVal target As GcMultiRow) As Boolean Return True End Function Protected Overloads Overrides Sub OnExecute(ByVal target As GcMultiRow) If target.IsCurrentCellInEditMode = False AndAlso EditingActions.BeginEdit.CanExecute(target) Then EditingActions.BeginEdit.Execute(target) Else SelectionActions.MoveToNextCell.Execute(target) End If End Sub End Class
System.Object
GrapeCity.Win.MultiRow.ActionList