基本操作 > 編集機能 > 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; } } |