作成日: 2024/01/31 最終更新日: 2024/01/31
文書種別
使用方法
詳細
常時入力モードでは、セルが常に編集状態にあるため、既定のショートカットキーを解除して編集用コントロールのKeyDownイベントで実装する必要があります。
[Visual Basic]
[C#]
[Visual Basic]
Imports GrapeCity.Win.MultiRow Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' MultiRowの初期設定 GcMultiRow1.Template = Template.CreateGridTemplate(3) GcMultiRow1.RowCount = 5 GcMultiRow1.EditMode = EditMode.EditOnEnter ' ショートカットキーの登録解除 GcMultiRow1.ShortcutKeyManager.Unregister(Keys.Down Or Keys.Control) GcMultiRow1.ShortcutKeyManager.Unregister(Keys.Up Or Keys.Control) GcMultiRow1.ShortcutKeyManager.Unregister(Keys.Left Or Keys.Control) GcMultiRow1.ShortcutKeyManager.Unregister(Keys.Right Or Keys.Control) End Sub Private Sub GcMultiRow1_EditingControlShowing(ByVal sender As Object, ByVal e As GrapeCity.Win.MultiRow.EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing ' 編集用コントロールのKeyDownイベントの検出 RemoveHandler e.Control.KeyDown, AddressOf editor_KeyDown AddHandler e.Control.KeyDown, AddressOf editor_KeyDown End Sub Private Sub editor_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) ' キー操作による動作の実装 If e.Control Then Select Case e.KeyCode Case Keys.Down e.SuppressKeyPress = True SelectionActions.MoveDown.Execute(DirectCast(sender, IEditingControl).GcMultiRow) Case Keys.Up e.SuppressKeyPress = True SelectionActions.MoveUp.Execute(DirectCast(sender, IEditingControl).GcMultiRow) Case Keys.Left e.SuppressKeyPress = True SelectionActions.MoveLeft.Execute(DirectCast(sender, IEditingControl).GcMultiRow) Case Keys.Right e.SuppressKeyPress = True SelectionActions.MoveRight.Execute(DirectCast(sender, IEditingControl).GcMultiRow) End Select End If End Sub
[C#]
using GrapeCity.Win.MultiRow;
private void Form1_Load(object sender, EventArgs e)
{
// MultiRowの初期設定
gcMultiRow1.Template = Template.CreateGridTemplate(3);
gcMultiRow1.RowCount = 5;
gcMultiRow1.EditMode = EditMode.EditOnEnter;
// ショートカットキーの登録解除
gcMultiRow1.ShortcutKeyManager.Unregister(Keys.Down | Keys.Control);
gcMultiRow1.ShortcutKeyManager.Unregister(Keys.Up | Keys.Control);
gcMultiRow1.ShortcutKeyManager.Unregister(Keys.Left | Keys.Control);
gcMultiRow1.ShortcutKeyManager.Unregister(Keys.Right | Keys.Control);
}
private void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
{
// 編集用コントロールのKeyDownイベントの検出
e.Control.KeyDown -= editor_KeyDown;
e.Control.KeyDown += editor_KeyDown;
}
private void editor_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
// キー操作による動作の実装
if (e.Control)
{
switch (e.KeyCode)
{
case Keys.Down:
e.SuppressKeyPress = true;
SelectionActions.MoveDown.Execute(((IEditingControl)sender).GcMultiRow);
break;
case Keys.Up:
e.SuppressKeyPress = true;
SelectionActions.MoveUp.Execute(((IEditingControl)sender).GcMultiRow);
break;
case Keys.Left:
e.SuppressKeyPress = true;
SelectionActions.MoveLeft.Execute(((IEditingControl)sender).GcMultiRow);
break;
case Keys.Right:
e.SuppressKeyPress = true;
SelectionActions.MoveRight.Execute(((IEditingControl)sender).GcMultiRow);
break;
}
}
}