FlexGrid for WPF
Enterキーで編集を開始する
基本操作 > 編集機能 > Enterキーで編集を開始する

既定ではEnterキーでセルを移動する動作となりますが、Enterキーによって編集を開始するようにするには、StartEditing メソッドを使用できます。

次のコードでは、PreviewKeyUp / PreviewKeyDown イベント内にStartEditing メソッドでセルを強制に編集モードに設定する方法を示します。

コードのコピー
Public Sub New()
    InitializeComponent()
    For i As Integer = 0 To 9
        _flex.Columns.Add(New Column())
    Next
    For j As Integer = 0 To 9
        _flex.Rows.Add(New Row())
    Next
    For row As Integer = 0 To 9
        For col As Integer = 0 To 9
            _flex(row, col) = String.Format("[{0},{1}]", row.ToString(), col.ToString())
        Next
    Next
    AddHandler _flex.PreviewKeyDown, AddressOf _flex_PreviewKeyDown
    AddHandler _flex.PreviewKeyUp, AddressOf _flex_PreviewKeyUp
End Sub
' Enterキーによる編集の開始を有効にします
Private Sub _flex_PreviewKeyUp(sender As Object, e As KeyEventArgs)
    If e.Key = Key.Enter Then
        e.Handled = True
    End If
End Sub
Private Sub _flex_PreviewKeyDown(sender As Object, e As KeyEventArgs)
    If e.Key = Key.Enter Then
        _flex.StartEditing(False, _flex.Selection.Row, _flex.Selection.Column)
        e.Handled = True
    End If
End Sub
コードのコピー
public MainWindow()
{
    InitializeComponent();
    for (int i = 0; i < 10; i++)
    {
        _flex.Columns.Add(new Column());
    }
    for (int j = 0; j < 10; j++)
    {
        _flex.Rows.Add(new Row());
    }
    for (int row = 0; row < 10; row++)
    {
        for (int col = 0; col < 10; col++)
        {
            _flex[row, col] = string.Format("[{0},{1}]", row.ToString(), col.ToString());
        }
    }
    _flex.PreviewKeyDown += _flex_PreviewKeyDown;
    _flex.PreviewKeyUp += _flex_PreviewKeyUp;
}
// Enterキーによる編集の開始を有効にします
void _flex_PreviewKeyUp(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
        e.Handled = true;
}

void _flex_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        _flex.StartEditing(false, _flex.Selection.Row, _flex.Selection.Column);
        e.Handled = true;
    }            
}