既定のショートカット キー
グリッドの既定のショートカット キーは、表示モードにより異なります。次の表はアクションの一覧とモードごとに割り当てられるキーの一覧です。グリッドの表示モードは「表示モード」を参照してください。
既定のショートカット キーの一覧は、ShortcutKeyManager以下のプロパティから取得できます。次のコードはShortcutKeyManager.DefaultModeListプロパティから通常モードのショートカット キーの一覧を取得します。
行モードのショートカット キーはShortcutKeyManager.RowModeListプロパティから、表示専用モードのショートカット キーはShortcutKeyManager.DisplayModeListプロパティからそれぞれ取得できます。
グループ/アクション | 説明 | 通常モード | 行モード | 表示専用モード | リストボックス モード |
---|---|---|---|---|---|
SelectionActions | |||||
MoveDown | 下のセルに移動する。 | Keys.Down | - | - | - |
MoveUp | 上のセルに移動する。 | Keys.Up | - | - | - |
MoveLeft | 左のセルに移動する。 | Keys.Left | - | - | - |
MoveRight | 右のセルに移動する。 | Keys.Right | - | - | - |
MoveToFirstCell | 最初の行の最初のセルに移動する。 | Keys.Control + Keys.Home | - | - | - |
MoveToLastCell | 最後の行の最後のセルに移動する。 | Keys.Control + Keys.End | - | - | - |
MoveToPreviousCell | 前のセルに移動する(行の境界を越える)。 | Keys.Shift+Keys.TabまたはKeys.Control+Keys.Shift+Keys.Tab | Keys.Shift+Keys.TabまたはKeys.Control+Keys.Shift+Keys.Tab | - | - |
MoveToNextCell | 次のセルに移動する(行の境界を越える)。 | Keys.TabまたはKeys.Control+Keys.Tab | Keys.TabまたはKeys.Control+Keys.Tab | - | - |
MoveToFirstCellInRow | カレント行の最初のセルに移動する。 | Keys.HomeまたはKeys.Control+Keys.Left | Keys.HomeまたはKeys.Control+Keys.Left | - | - |
MoveToFirstCellByTabOrder | タブオーダーの最初のセルに移動する | - | - | - | - |
MoveToFirstCellInRowByTabOrder | カレント行のタブオーダーの最初のセルに移動する | - | - | - | - |
MoveToLastCellInRow | カレント行の最後のセルに移動する。 | Keys.EndまたはKeys.Control+Keys.Right | Keys.EndまたはKeys.Control+Keys.Right | - | - |
MoveToLastCellByTabOrder | タブオーダーの最後のセルに移動する | - | - | - | - |
MoveToLastCellInRowByTabOrder | カレント行のタブオーダーの最後のセルに移動する | - | - | - | - |
MoveToPreviousCellInRow | カレント行の前のセルに移動する。 | - | - | - | - |
MoveToPreviousCellThenControl | 前のセルに移動する。現在のセルがGcMultiRowの最初のセルの場合はフォーカスを前のコントロールに移動する。 | - | - | - | - |
MoveToNextCellInRow | カレント行の次のセルに移動する。 | - | - | - | - |
MoveToNextCellThenControl | 次のセルに移動する。現在のセルがGcMultiRowの最後のセルの場合はフォーカスを次のコントロールに移動する。 | - | - | - | - |
MoveToFirstRow | 最初の行に移動する。 | Keys.Control+Keys.Up | Keys.Control+Keys.Up Keys.Home |
- | Keys.Home |
MoveToLastRow | 最後の行に移動する。 | Keys.Control+Keys.Down | Keys.Control+Keys.DownまたはKeys.End | - | Keys.End |
MoveToPreviousRow | 前の行に移動する。 | - | Keys.UpまたはKeys.Left | - | Keys.Up |
MoveToNextRow | 次の行に移動する。 | - | Keys.DownまたはKeys.Right | - | Keys.Down |
MoveToNextPage | 次のページに移動する。 | Keys.PageDown | Keys.PageDown | - | Keys.PageDown |
MoveToPreviousPage | 前のページに移動する。 | Keys.PageUp | Keys.PageUp | - | Keys.PageUp |
ReverseSelectCurrentRow | カレント行の選択を反転する。 | - | - | - | Keys.Space |
SelectAll | すべての行を選択する。 | Keys.Control+Keys.A | Keys.Control+Keys.A | - | Keys.Control+Keys.A |
SelectRow | カレント行を選択する。 | Keys.Shift+Keys.Space | - | - | - |
ShiftDown | 選択されている範囲を最も近い下のセルに拡大または縮小する。 | Keys.Shift+Keys.Down | - | - | - |
ShiftUp | 選択されている範囲を最も近い上のセルに拡大または縮小する。 | Keys.Shift+Keys.Up | - | - | - |
ShiftLeft | 選択されている範囲を最も近い左のセルに拡大または縮小する。 | Keys.Shift+Keys.Left | - | - | - |
ShiftRight | 選択されている範囲を最も近い右のセルに拡大または縮小する。 | Keys.Shift+Keys.Right | - | - | - |
ShiftToFirstCell | 選択されている範囲を現在のセルから最初のアクティブ行の最初のセルに変更する。 | Keys.Shift+Keys.Control+Keys.Home | - | - | - |
ShiftToLastCell | 選択されている範囲を現在のセルから最後のアクティブ行の最後のセルに変更する。 | Keys.Shift+Keys.Control+Keys.End | - | - | - |
ShiftToFirstCellInRow | 選択されている範囲を現在のセルからカレント行の最初のセルに変更する。 | Keys.Shift+Keys.HomeまたはKeys.Shift+Keys.Control+Keys.Left | - | - | - |
ShiftToLastCellInRow | 選択されている範囲を現在のセルからカレント行の最後のセルに変更する。 | Keys.Shift+Keys.EndまたはKeys.Shift+Keys.Control+Keys.Right | - | - | - |
ShiftToFirstRow | 選択されている範囲を現在のセルから最初の行の同じCellIndexセルに変更する。 | Keys.Shift+Keys.Control+Keys.Up | Keys.Shift+Keys.HomeまたはKeys.Shift+Keys.Control+Keys.Up | - | - |
ShiftToLastRow | 選択されている範囲を現在のセルから最後の行の同じCellIndexセルに変更する。 | Keys.Shift+Keys.Control+Keys.Down | Keys.Shift+Keys.EndまたはKeys.Shift+Keys.Control+Keys.Down | - | - |
ShiftToPreviousRow | 選択されている範囲を現在のセルから前の行の同じCellIndexセルに変更する。 | - | Keys.Shift+Keys.UpまたはKeys.Shift+Keys.Left | - | - |
ShiftToNextRow | 選択されている範囲を現在のセルから次の行の同じCellIndexセルに変更する。 | - | Keys.Shift+Keys.DownまたはKeys.Shift+Keys.Right | - | - |
ShiftPageDown | 選択されている範囲を次のページに拡大または縮小する。 | Keys.Shift+Keys.PageDown | Keys.Shift+Keys.PageDown | - | - |
ShiftPageUp | 選択されている範囲を上のページに拡大または縮小する。 | Keys.Shift+Keys.PageUp | Keys.Shift+Keys.PageUp | - | - |
ComponentActions | |||||
SelectNextControl | フォーカスを次のコントロールに移動する。 | - | - | - | - |
SelectPreviousControl | フォーカスを前のコントロールに移動する。 | - | - | - | - |
EditingActions | |||||
BeginEdit | セルの編集を開始する。 | Keys.F2またはKeys.Enter | Keys.F2またはKeys.Enter | - | - |
EndEdit | セルの編集結果を確定する。 | Keys.Enter | Keys.Enter | - | - |
CancelCellEdit | 現在のセルが編集状態にある場合は現在の入力操作をキャンセルして編集状態を終了する。 | - | - | - | - |
CancelEdit | セルの編集をキャンセルする。 | Keys.Escape | Keys.Escape | - | - |
CancelRowEdit | 現在のセルが編集状態でない場合、または現在のセルのダーティ状態がfalseの場合は行レベルの編集をキャンセルする。 | - | - | - | - |
ClearEdit | 編集中の値をクリアする。 | - | - | - | - |
Cut | 選択されたセルの値をクリップボードに切り取り。 | Keys.Control+Keys.XまたはKeys.Shift+Keys.Delete | Keys.Control+Keys.XまたはKeys.Shift+Keys.Delete | - | - |
Copy | 選択されたセルの値をクリップボードにコピー。 | Keys.Control+Keys.CまたはKeys.Control+Keys.Insert | Keys.Control+Keys.CまたはKeys.Control+Keys.Insert | - | Keys.Control+Keys.CまたはKeys.Control+Keys.Insert |
Paste | 選択されたセルの値をクリップボードから貼り付け。 | Keys.Control+Keys.VまたはKeys.Shift+Keys.Insert | Keys.Control+Keys.VまたはKeys.Shift+Keys.Insert | - | - |
Clear | 選択されたセルの値を削除する。 | Keys.Delete | Keys.Delete | - | - |
DeleteSelectedRows | 選択された行を削除する。 | Keys.Control+Keys.Delete | Keys.Control+Keys.Delete | - | Keys.Control+Keys.Delete |
CommitRow | 行の変更をコミットする。 | Keys.Control+Keys.Enter | Keys.Control+Keys.Enter | - | - |
InputNullValue | Null値を入力する。 | Keys.Control+Keys.D0またはKeys.Control+Keys.NumPad0 | Keys.Control+Keys.D0またはKeys.Control+Keys.NumPad0 | - | - |
ShowDropDown | ドロップダウン ウィンドウを表示する。 | Keys.F4またはKeys.Alt+Keys.Down | Keys.F4またはKeys.Alt+Keys.Down | - | - |
ScrollActions | |||||
VerticalScrollToFirstPage | 垂直方向の最初のページに移動する。 | - | - | Keys.Control+Keys.Up | - |
VerticalScrollToLastPage | 垂直方向の最後のページに移動する。 | - | - | Keys.Control+Keys.Down | - |
VerticalScrollToPreviousPage | 垂直方向の前のページに移動する。 | - | - | Keys.PageUpまたはKeys.Shift+Keys.Space | - |
VerticalScrollToNextpage | 垂直方向の次のページに移動する。 | - | - | Keys.PageDownまたはKeys.Space | - |
HorizontalScrollToFirstPage | 水平方向の最初のページに移動する。 | - | - | Keys.HomeまたはKeys.Control+Keys.Left | - |
HorizontalScrollToLastPage | 水平方向の最後のページに移動する。 | - | - | Keys.EndまたはKeys.Control+Keys.Right | - |
HorizontalScrollToPreviousPage | 水平方向の前のページに移動する。 | - | - | - | Keys.Left |
HorizontalScrollToNextPage | 水平方向の次のページに移動する。 | - | - | - | Keys.Right |
ScrollUp | 垂直方向で上に1ステップ移動する。 | - | - | Keys.Up | - |
ScrollDown | 垂直方向で下に1ステップ移動する。 | - | - | Keys.Down | - |
ScrollLeft | 水平方向に左に1ステップ移動する。 | - | - | Keys.Left | - |
ScrollRight | 水平方向に右に1ステップ移動する。 | - | - | Keys.Right | - |
既定のショートカット キーの一覧は、ShortcutKeyManager以下のプロパティから取得できます。次のコードはShortcutKeyManager.DefaultModeListプロパティから通常モードのショートカット キーの一覧を取得します。
Imports GrapeCity.Win.MultiRow ' あらかじめListViewコントロールをフォームに配置します ListView1.SuspendLayout() ListView1.View = View.Details ListView1.Columns.Add("アクション") ListView1.Columns.Add("キー") For Each shortcutKey As ShortcutKey In GcMultiRow1.ShortcutKeyManager.DefaultModeList Dim item As ListViewItem = New ListViewItem() item.Text = shortcutKey.Action.DisplayName item.SubItems.Add(shortcutKey.Key.ToString()) ListView1.Items.Add(item) Next ListView1.ResumeLayout()
using GrapeCity.Win.MultiRow; // あらかじめListViewコントロールをフォームに配置します listView1.SuspendLayout(); listView1.View = View.Details; listView1.Columns.Add("アクション"); listView1.Columns.Add("キー"); foreach (ShortcutKey shortcutKey in gcMultiRow1.ShortcutKeyManager.DefaultModeList) { ListViewItem item = new ListViewItem(); item.Text = shortcutKey.Action.DisplayName; item.SubItems.Add(shortcutKey.Key.ToString()); listView1.Items.Add(item); } listView1.ResumeLayout();
行モードのショートカット キーはShortcutKeyManager.RowModeListプロパティから、表示専用モードのショートカット キーはShortcutKeyManager.DisplayModeListプロパティからそれぞれ取得できます。
ショートカット キーの登録
ショートカット キーを登録するには、ShortcutKeyManager.Registerメソッドを使用します。次のコードは、ユーザーが[F3]キーを押したときに現在のセルの編集を開始する設定です。
GcMultiRow1.ShortcutKeyManager.Register(GrapeCity.Win.MultiRow.EditingActions.BeginEdit, Keys.F3)
gcMultiRow1.ShortcutKeyManager.Register(GrapeCity.Win.MultiRow.EditingActions.BeginEdit, Keys.F3);
ショートカット キーの登録解除
登録されているショートカット キーを解除するには、ShortcutKeyManager.Unregisterメソッドを使用します。ショートカット キーは、アクション単位または割り当てられているキー単位で解除できます。
次のコードは、SelectAllアクションに割り当てられているショートカット キー(既定では[Ctrl]+[A])を解除します。
次のコードは、Tabキーに割り当てられているすべてのアクションを解除します。
次のコードは、SelectAllアクションに割り当てられているショートカット キー(既定では[Ctrl]+[A])を解除します。
GcMultiRow1.ShortcutKeyManager.Unregister(GrapeCity.Win.MultiRow.SelectionActions.SelectAll)
gcMultiRow1.ShortcutKeyManager.Unregister(GrapeCity.Win.MultiRow.SelectionActions.SelectAll);
次のコードは、Tabキーに割り当てられているすべてのアクションを解除します。
GcMultiRow1.ShortcutKeyManager.Unregister(Keys.Tab)
gcMultiRow1.ShortcutKeyManager.Unregister(Keys.Tab);
アクションの作成
ショートカット キーに割り当てるアクションを作成することができます。アクションを作成するには、IActionインタフェースを実装するクラスを作成します。
次のコードは、ユーザーが[F3]キーを押したとき、現在のセルの情報を表示します。
次のコードは、ユーザーが[F3]キーを押したとき、現在のセルの情報を表示します。
Imports GrapeCity.Win.MultiRow Public Class MyAction 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 MessageBox.Show(target.CurrentCellPosition.ToString()) End Sub End Class GcMultiRow1.ShortcutKeyManager.Register(New MyAction(), Keys.F3)
using GrapeCity.Win.MultiRow; public class MyAction : IAction { public bool CanExecute(GcMultiRow target) { return true; } public string DisplayName { get { return this.ToString(); } } public void Execute(GcMultiRow target) { MessageBox.Show(target.CurrentCellPosition.ToString()); } } gcMultiRow1.ShortcutKeyManager.Register(new MyAction(), Keys.F3);
アクションの実行
ショートカット キーのアクションは、直接実行することもできます。アクションの実行結果は、ユーザーの操作をシミュレートしたものとみなされます。
次のコードは、GcMultiRowコントロールのすべてのセルを選択します。
次のコードは、GcMultiRowコントロールのすべてのセルを選択します。
GrapeCity.Win.MultiRow.SelectionActions.SelectAll.Execute(GcMultiRow1)
GrapeCity.Win.MultiRow.SelectionActions.SelectAll.Execute(gcMultiRow1);
ショートカットキーの設定ダイアログ
プロパティウィンドウでGcMultiRow.ShortcutKeyManagerプロパティを選択し、[...]ボタンをクリックすると、次の画面で各表示モードのショートカットキーの定義を変更できます。
ショートカットキーの設定ダイアログを使用してユーザー定義のカスタムアクションを設定できます。ユーザー定義のカスタムアクションを設定するには、次の手順を実行します。
ショートカットキーの設定ダイアログを使用してユーザー定義のカスタムアクションを設定できます。ユーザー定義のカスタムアクションを設定するには、次の手順を実行します。
- IActionインタフェースを実装するクラスを作成し、プロジェクトに追加する。
- プロジェクトをビルドする。
- プロパティウィンドウでGcMultiRow.ShortcutKeyManagerプロパティを選択し、[...]ボタンをクリックする。
- 表示されたショートカットキーの設定ダイアログで、ユーザー定義のカスタムアクションを追加するキーを選択する。
- [アクション]の[種類:]のコンボボックスから「Custom Actions」を選択する。
- [アクション]の一覧からアクションを選択し、[追加]ボタンをクリックする。
- [OK]ボタンをクリックしてショートカットキーの設定ダイアログを閉じる。
ユーザー定義GcMultiRowコントロールに既定のショートカットキーを設定する
InitialShortcutKeyManagerプロパティを使用すると、ユーザー定義GcMultiRowコントロールの既定のショートカットキーを独自に割り当てることができます。
次のコードは、ユーザー定義GcMultiRowコントロールのRightキーに対して、既定のショートカットキーの変更を行います。
|
次のコードは、ユーザー定義GcMultiRowコントロールのRightキーに対して、既定のショートカットキーの変更を行います。
Imports System.Windows.Forms Imports GrapeCity.Win.MultiRow Public Class MyGcMultiRow Inherits GcMultiRow Public Sub New() InitializeCustomGrid() End Sub Private Sub InitializeCustomGrid() Me.InitialShortcutKeyManager.Unregister(GrapeCity.Win.MultiRow.ViewMode.Row, Keys.Right) Me.InitialShortcutKeyManager.DefaultModeList.Add(New GrapeCity.Win.MultiRow.ShortcutKey _ (GrapeCity.Win.MultiRow.SelectionActions.MoveToNextCellInRow, System.Windows.Forms.Keys.Right)) End Sub End Class
using System.Windows.Forms; using GrapeCity.Win.MultiRow; public class MyGcMultiRow : GcMultiRow { public MyGcMultiRow() { this.InitialShortcutKeyManager.Unregister(GrapeCity.Win.MultiRow.ViewMode.Default, Keys.Right); this.InitialShortcutKeyManager.DefaultModeList.Add(new GrapeCity.Win.MultiRow.ShortcutKey(((GrapeCity.Win.MultiRow.Action) (GrapeCity.Win.MultiRow.SelectionActions.MoveToNextCellInRow)), System.Windows.Forms.Keys.Right)); } }