GrapeCity.Win.MultiRow.v80 アセンブリ > GrapeCity.Win.MultiRow 名前空間 : ShortcutKeyManager クラス |
ShortcutKeyManagerには、DefaultMode、DisplayMode、RowMode、およびListBoxModeの4つのモードがあります。各モードはGcMultiRow.ViewModeプロパティに対応します。各ViewModeはそれぞれ固有のShortcutKeyのリストを持ちます。GcMultiRowでキーが押されると、対応するモードのリストで、押されたキーを持つShortcutKeyが検索されます。ShortcutKeyを追加または削除するには、特別なリストを操作するか、Register(IAction,Keys)メソッドおよびUnregister(IAction)メソッドを使用します。定義されたすべてのShortcutKeyをクリアするには、Clearメソッドを使用するか、Resetメソッドによってショートカットキーを既定の状態にリセットします。
GcMultiRowを作成すると、既定のShortcutKeyが各表示モードのリストに登録されます。
GcMultiRow.ShortcutKeyManagerのClearメソッドを呼び出すと、既定のShortcutKeyがすべてクリアされます。また、Unregister(IAction)メソッドを呼び出して、特定の不要なアクションを削除することもできます。
独自のロジックを実装するには、IActionインタフェースを実装して特別なアクションを記述し、それをShortcutKeyManagerに登録します。また、単にSelectionActions、EditingActions、ScrollActions、ComponentActionsに含まれる既存のアクションを登録することもできます。
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.ShortcutKeyManager