SPREAD for WPF 4.0J - GcSpreadGrid
常時入力
MESCIUS SPREAD for WPF 4.0J > 開発者ガイド > 編集 > 常時入力

アクティブセルでただちに編集状態を開始するよう設定できます。通常、ユーザーがセルを編集するにはセルをダブルクリックするなどして編集状態を開始する必要があります。しかし常時入力を有効にすると、セルはフォーカスが移動するとただちに編集状態となります。

常時入力を有効にするには、コントロールの EditModePermanent プロパティを設定します。

常時入力では、ユーザーのアクティブセルの移動方法により編集を開始したときのキャレットの位置が設定されます。既定では次のとおりです。

アクティブ セルの移動方法 キャレットの位置 方向キー(※)の処理
セルをクリック マウス位置 セル内でキャレットを端まで移動してからアクティブ セルを移動
[Enter] や [Tab]などキーボード操作で移動 既存の値を選択 セル内でキャレットを端まで移動してからアクティブ セルを移動

※上下左右の矢印キー、[Home]、[End] キーを表します。

この設定は変更できます。編集を開始したときのキャレットの位置はコントロールの EditCaretPosition プロパティで、方向キーの処理方法は ProcessNavigationKeys プロパティで設定します。また、セルの編集が開始されたタイミングで発生するコントロールの CellBeginEdit イベントを使用し、ユーザーの編集の開始方法(常時入力の場合、アクティブセルの移動方法)にあわせて設定を変更することもできます。次のサンプルコードを参照してください。

サンプルコード

次のサンプルコードはユーザーがセルをクリックして編集を開始したとき、既存の値の末尾に追記し、方向キーはセル内でキャレットを移動するよう設定します。

XAML
コードのコピー
<sg:GcSpreadGrid CellBeginEdit="gcSpreadGrid1_CellBeginEdit"/>
C#
コードのコピー
private void gcSpreadGrid1_CellBeginEdit(object sender, SpreadCellBeginEditEventArgs e)
{
    if (e.BeginEditAction == SpreadBeginEditAction.LeftClick)
    {
        e.EditCaretPosition = EditCaretPosition.End;
        e.ProcessNavigationKeys = ProcessNavigationKeys.Editor;
    }
}
Visual Basic
コードのコピー
Private Sub gcSpreadGrid1_CellBeginEdit(sender As Object, e As SpreadCellBeginEditEventArgs)
    If e.BeginEditAction = SpreadBeginEditAction.LeftClick Then
        e.EditCaretPosition = EditCaretPosition.End
        e.ProcessNavigationKeys = ProcessNavigationKeys.Editor
    End If
End Sub
関連トピック