PowerTools MultiRow for Windows Forms 8.0J > InputManCellの使い方 > GcComboBoxCell > テキストボックスの使い方 > 入力の制御 |
GcComboBoxが提供する独自の入力機能について解説します。
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文字がすべて入力されます。 |
AcceptsCrLfプロパティを使用してクリップボードへ改行を含む文字列をコピー、または貼り付けた場合の改行コードの扱いを設定できます。AcceptsCrLf プロパティは、CrLfMode 列挙体を使用して次の値を設定できます。
AcceptsCrLfの値 | 説明 |
---|---|
NoControl | 改行コードはそのままでコピー、貼り付けを行います。従来のInputManのテキストコントロールと同じ動作です。 |
Filter | 全ての改行コードを削除しコピー、貼り付けを行います。 |
Cut | 最初の改行コード以降の文字列を削除します。標準コントロールと同じ動作です。 |
AcceptsTabCharプロパティを使用してクリップボードへタブ文字を含む文字列をコピー、または貼り付けた場合のタブ文字の扱いを設定できます。AcceptsCrLfプロパティは、CrLfMode 列挙体を使用して次の値を設定できます。
AcceptsTabCharの値 | 説明 |
---|---|
NoControl | タブ文字はそのままでコピー、貼り付けを行います。従来のInputManのコンボコントロールと同じ動作です。 |
Filter | 全てのタブ文字を削除しコピー、貼り付けを行います。 |
Cut | 最初のタブ文字以降の文字列を削除します。 |
AcceptsTabCharプロパティは、複数行(MultilineプロパティがTrue)の場合は有効になりません。 |
セルの編集時のみ有効です。GcComboBoxEditingControl.TextChangingイベントを使用します。
セルに文字列を入力するとGcComboBoxEditingControl.TextChangingイベントが、GcComboBoxEditingControl.TextChangedイベントの前(入力された文字列がTextプロパティに渡される前)に発生します。このイベント内で入力文字列をチェックすれば、Textプロパティの値に影響を与えることなく、入力を制御できます。