セルエディタは 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 つのコントロールすべてで編集が無効になります。 表示・スクロール・印刷・エクスポートは動作します (ライセンスキーの適用)。
履歴
編集の確定は履歴に載ります。エディタを開いただけで確定していない状態は記録されません。