作成日: 2023/07/10 最終更新日: 2023/07/26
文書種別
不具合
状況
修正済み
詳細
GcSpreadGridのCellBeginEditイベントでEditCaretPositionにEndを設定し、テキスト型セルでセル編集時に末尾から入力するように実装しても、
非編集状態から直接入力を行うと入力開始後にキャレットが不正に動作し以下のように正しく入力できません。
例)
「あいうえお」と入力されたセルに"123"と文字列を入力する
結果)
「あ23いうえお1」と入力される
現象はテキスト型セルに半角英数を入力した場合に発生し、標準型セルや全角文字を入力した場合は発生しません。
回避方法
Service Pack 2(v3.0.4502.2015)で修正済みです。
Service Pack 2(v3.0.4502.2015)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
EditElementShowingイベントでCaretIndexプロパティに明示的にLengthプロパティの値を設定する方法で回避可能です。
◎サンプルコード(C#)
private void gcSpreadGrid1_EditElementShowing(object sender, EditElementShowingEventArgs e) { if (gcSpreadGrid1.ActiveCell.InheritedCellType is TextCellType){ GcTextBox gcTxtBox = gcSpreadGrid1.EditElement as GcTextBox; gcTxtBox.CaretIndex = gcTxtBox.Text.Length; } }