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

IActionのリストを表します。このリスト内のアクションが1つずつ実行されます。
構文
Public Class ActionList 
   Implements IAction 
public class ActionList : IAction  
解説

アクションのリストを実行するために、ActionListを1つのキーにバインドできます。

ActionListは、既存のアクションを組み合わせて新しいActionを定義する場合に使用します。いずれかのアクションが実行できない場合、そのActionListは実行できません。ActionListを実行すると、各ActionCanExecuteメソッドが呼び出されます。アクションが実行可能な場合はそのExecuteメソッドが呼び出され、実行が完了したら次のActionに移ります。たとえば、SelectionActions.SelectAllEditingActions.Copyを組み合わせて"CopyAll"アクションリストを作成できます。

使用例
次のサンプルコードは、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.ActionList

参照

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

 

 


© 2008-2015 GrapeCity inc. All rights reserved.