PowerTools MultiRow for Windows Forms 8.0J
Action クラス
メンバ  使用例 

IActionインタフェースの基本実装を提供し、GcMultiRowのすべてのアクションの基本ロジックを実装します。このクラスは抽象 (Visual BasicではMustInherit)クラスなので、インスタンス化できません。
構文
Public MustInherit Class Action 
   Implements IAction 
public abstract class Action : IAction  
解説

このクラスは、インスタンス化できない抽象クラスです。派生クラスで適切な操作に対するアクションを実装するためのフレームワークを提供します。

このクラスが実装されている場合、他のクラスでは、アクションを実行する前にCanExecuteを呼び出して、このアクションの実行が許可されているかどうかを確認する必要があります。その後で、Executeを呼び出してアクションを実行します。

使用例
次のサンプルコードは、GcMultiRowコントロールのショートカットキー設定を管理する方法を示します。ここでは、キーのアクションを変更する方法と、独自のアクションをカスタマイズする方法を示しています。このサンプルコードは、GcMultiRow.ShortcutKeyManagerプロパティに示されている詳細なコード例の一部を抜粋したものです。
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.Action

参照

Action メンバ
GrapeCity.Win.MultiRow 名前空間
IAction インターフェース
ActionList クラス
SelectionActions クラス
EditingActions クラス
ComponentActions クラス
ScrollActions クラス
ShortcutKey 構造体
ShortcutKeyManager クラス

 

 


© 2008-2015 GrapeCity inc. All rights reserved.