MESCIUS MultiRow for Windows Forms 12.0J
ショートカット キー

GcMultiRowコントロールをキーボードで操作するには、ショートカット キーを設定します。
既定のショートカット キー
グリッドの既定のショートカット キーは、表示モードにより異なります。次の表はアクションの一覧とモードごとに割り当てられるキーの一覧です。グリッドの表示モードは「表示モード」を参照してください。

グループ/アクション 説明 通常モード 行モード 表示専用モード リストボックス モード
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])を解除します。

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]キーを押したとき、現在のセルの情報を表示します。

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コントロールのすべてのセルを選択します。

GrapeCity.Win.MultiRow.SelectionActions.SelectAll.Execute(GcMultiRow1)
GrapeCity.Win.MultiRow.SelectionActions.SelectAll.Execute(gcMultiRow1);
ショートカットキーの設定ダイアログ
プロパティウィンドウでGcMultiRow.ShortcutKeyManagerプロパティを選択し、[...]ボタンをクリックすると、次の画面で各表示モードのショートカットキーの定義を変更できます。


ショートカットキーの設定ダイアログを使用してユーザー定義のカスタムアクションを設定できます。ユーザー定義のカスタムアクションを設定するには、次の手順を実行します。
  1. IActionインタフェースを実装するクラスを作成し、プロジェクトに追加する。
  2. プロジェクトをビルドする。
  3. プロパティウィンドウでGcMultiRow.ShortcutKeyManagerプロパティを選択し、[...]ボタンをクリックする。
  4. 表示されたショートカットキーの設定ダイアログで、ユーザー定義のカスタムアクションを追加するキーを選択する。
  5. [アクション]の[種類:]のコンボボックスから「Custom Actions」を選択する。
  6. [アクション]の一覧からアクションを選択し、[追加]ボタンをクリックする。
  7. [OK]ボタンをクリックしてショートカットキーの設定ダイアログを閉じる。
ユーザー定義GcMultiRowコントロールに既定のショートカットキーを設定する
InitialShortcutKeyManagerプロパティを使用すると、ユーザー定義GcMultiRowコントロールの既定のショートカットキーを独自に割り当てることができます。
  • InitialShortcutKeyManagerプロパティでショートカットキーを設定している場合、後からGcMultiRow.ShortcutKeyManagerプロパティでショートカットキーを設定しても、その設定は有効になりません。
  • InitialShortcutKeyManagerプロパティより、GcMultiRow.ShortcutKeyManagerプロパティの設定が先に行われた場合、InitialShortcutKeyManagerプロパティの設定は有効になりません。

次のコードは、ユーザー定義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));
    }
}
   
関連トピック

 

 


© MESCIUS inc. All rights reserved.