MESCIUS SPREAD for Windows Forms 17.0J
入力の制御(GcTextBox型セル)

GcTextBox型セルでは、入力可能な文字数やパスワード入力を設定できます。ここではGcTextBox型セルが提供する入力機能について解説します。

書式の設定

GcTextBox型セルは、FormatString プロパティにより書式を設定することで入力可能な文字種を制限することができます。また、AutoConvert プロパティを使用して指定の書式に自動的に変換することも可能です。
GcTextBox型セルに設定可能な文字種等の詳細については、「書式の設定(GcTextBox型セル)」で解説します。

最大文字数の指定

MaxLengthUnit プロパティを使えば、MaxLength プロパティでセルへの入力可能文字数を設定する際に文字のカウント方法を指定することができます。MaxLengthUnit プロパティは、LengthUnit 列挙体を使用して次の3つ値を設定できます。

MaxLengthUnitの値 説明
Char 文字単位でカウントしますが、サロゲート ぺア文字やIVS(Ideographic Variation Sequence)文字の異体字セレクタ(Variation Selector)は2文字としてカウントされます。
Byte バイト単位で文字をカウントします。
TextElement 文字単位でカウントします。サロゲート ぺア文字やIVS文字は1文字としてカウントされます。

なお、バイト単位の処理では、各文字のバイト数を識別に使用するエンコードは、MaxLengthCodePage プロパティで設定します。
IVS文字はIVSの親となる漢字(以下、親字)の文字コードの後ろに異体字セレクタが付加された構造のため、MaxLengthプロパティの設定値によっては異体字セレクタが削除される場合があります。
以下はMaxLengthプロパティを「8」に設定し、親字「噌」を持つIVS文字「」を入力可能な最大文字数を入力した場合の動作例です。

MaxLengthUnitの値 動作例
Char 」は親字1文字、異体字セレクタ2文字の合計3文字としてカウントされます。よって、3文字目は親字のみの1文字が入力され、異体字セレクタ以降は削除されます。
Byte 」は親字2バイト、異体字セレクタ4バイトの合計6バイトとしてカウントされます。よって、2文字目は親字のみの2バイトが入力され、異体字セレクタ以降は削除されます。
TextElement IVS文字は1文字としてカウントされるため、8文字のIVS文字がすべて入力されます。

なお、GcTextBoxEditingControl.SelectionStartプロパティとGcTextBoxEditingControl.SelectionLengthプロパティは、MaxLengthUnitプロパティの設定にかかわらずMaxLengthUnit.Charでカウントした結果と同じ文字単位で処理されます。

編集モードの切り替え

EditMode プロパティを使って、コントロールがフォーカスを受け取ったときのデフォルトの編集モードを定義できます。EditMode プロパティをEditMode.Insertにすると挿入モード、EditMode.Overwriteにすると上書きモードになります。また、EditMode.FixedInsertとEditMode.FixedOverwriteでは、編集モードが固定されるので、実行中に[Ins]キーが押されても編集モードは切り替わりません。

改行コードの取り扱い
AcceptsCrLf プロパティを使用してクリップボードへ改行を含む文字列をコピー、または貼り付けた場合の改行コードの扱いを設定できます。AcceptsCrLf プロパティは、以下の3つの動作から選択します。このプロパティはMultiline プロパティがFalseに設定されている時に有効になります。また、セルが編集状態の場合にのみ有効です。

AcceptsCrLfの値 説明
NoControl 改行コードはそのままでコピー、貼り付けを行います。
Filter 全ての改行コードを削除しコピー、貼り付けを行います。
Cut 最初の改行コード以降の文字列を削除します。標準コントロールと同じ動作です。
タブ文字の取り扱い
AcceptsTabChar プロパティを使用してクリップボードへタブ文字を含む文字列をコピー、または貼り付けた場合のタブ文字の扱いを設定できます。AcceptsTabChar プロパティは、TabCharMode 列挙体を使用して次の値を設定できます。
AcceptsTabCharの値 説明
NoControl タブ文字はそのままでコピー、貼り付けを行います。
Filter 全てのタブ文字を削除しコピー、貼り付けを行います。
Cut 最初のタブ文字以降の文字列を削除します。
パスワード入力

以下のいずれかの設定を行うと、GcTextBoxCellはパスワード専用の入力フォームとして動作します。

また、PasswordRevelationMode プロパティを使用すると入力中のパスワード文字列を一時的に表示することが可能です。PasswordRevelationModeプロパティに設定可能な値は以下のとおりです。

PasswordRevelationModeの値 説明
None パスワード文字列を表示しません。
ShowEyeButton パスワードを入力すると、コントロールの右端に目のアイコンが表示されこのアイコンのクリックでパスワード文字列を表示します。

ShowLastTypedChar 最後に入力した文字だけ数秒間表示します。

自動フォーカス移動

ExitOnLastChar プロパティをTrueに設定すると、入力された文字列が、MaxLengthプロパティで設定した最大文字数に達したときに、自動的に次のコントロールへフォーカスを移動できます。

参照

 

 


© MESCIUS inc. All rights reserved.