V4 V5

セルエディタは WinForms の TextBox ではなく、キャレットと選択を自前で描く実装です。 グリッドと同じレイアウト処理を共有するため、編集中と確定後で文字の位置がずれません。

編集を開始・終了する

メンバー内容
control.BeginEdit(initialText)編集を開始(null なら現在値から)
control.CancelEdit()取り消して閉じる
control.IsEditing編集中かどうか

キー入力やダブルクリックからは自動的に開始されます。Enter / Tab で確定、Esc で取り消しです。

using unvell.ReoGrid.Avalonia;
using unvell.ReoGrid.Core;

grid.BeginEdit(null);        // 現在値から編集開始。文字列を渡すとそれで置き換える
bool editing = grid.IsEditing;
grid.CancelEdit();           // 取り消して閉じる

入力文字列の解釈

セルに「ユーザーが打った文字列」として値を設定するには、専用の API を使います。

メンバー内容
control.GetActiveCellInput()数式なら = 付き、それ以外は表示文字列
control.SetActiveCellInput(text)文字列を解釈して値・数式として設定

SetActiveCellInput は Excel と同じ規則で解釈します。

入力結果
=SUM(A1:A2)数式(先頭の = が取り除かれて格納される)
1234数値
TRUE / FALSE真偽値
2026/07/28日付
それ以外文字列

数式バーを自作する場合はこの 2 つを使ってください。モデル側の SetFormula= を受け付けません(数式エンジン)。

// 数式バーを自作するときはこの 2 つを使う。Excel と同じ規則で解釈される
string shown = grid.GetActiveCellInput();      // 数式なら "=" 付き
grid.SetActiveCellInput("=SUM(A1:A2)");        // 数式として設定
grid.SetActiveCellInput("1234");               // 数値として設定
grid.SetActiveCellInput("2026/07/28");         // 日付として設定

書式つきの編集

編集中に文字単位で書式を変えられます。確定すると リッチテキスト として保存されます。

メンバー
control.ToggleEditingBold()
control.ToggleEditingItalic()
control.ToggleEditingUnderline()
control.SetEditingTextColor(color)

行の折り返しと改行

Alt+Enter でセル内改行を入力できます。

セルに TextWrapMode が指定されていると、編集中も 列幅で折り返します。折り返し位置はグリッドの描画とまったく同じ計算(禁則処理を含む) で決まるため、編集中と確定後で行の切れ目が変わりません。エディタは縦に伸びます。

折り返しを指定していないセルでは、エディタは従来どおり横に伸びて 1 行のまま 編集を続けます。

Home / End / 見た目の行に対して働くので、折り返した行の途中でも その行の先頭・末尾に移動します。

確定すると、その行がまだ自動サイズなら行の高さが内容に 合わせて調整されます(改行や折り返しが増えれば伸び、減れば縮む)。高さを一度手で 変えた行はその高さのままです。

日本語入力(IME)

WinForms / WPF の両方で IME に対応しています。

  • 変換中の文字列(未確定文字列)がセル内に表示されます
  • 非編集状態のセルで日本語入力を開始すると、その場でエディタが開いて入力が続きます

Avalonia 版は各プラットフォームの IME 実装に依存します。

数式のハイライト

= で始まる入力を編集しているとき、参照しているセル・範囲が色分けされます。 V4 の 4.6 系と同じ挙動です。

編集を禁止する

セル型が AllowsTextEditing => false を返すと、そのセルは直接入力できません (チェックボックスなど)。詳細は カスタムセル型 を参照してください。

ライセンス未適用の場合、3 つのコントロールすべてで編集が無効になります。 表示・スクロール・印刷・エクスポートは動作します (ライセンスキーの適用)。

履歴

編集の確定は履歴に載ります。エディタを開いただけで確定していない状態は記録されません。

次に読む

ページの内容は役に立ちましたか?