文字種の制限
GcTextBoxCellでは、入力可能な文字種をFormatプロパティで制限することができます。Formatプロパティに設定できるキーワードは、次の表のとおりです。また、ここで指定された以外の文字種が入力されると、GcTextBoxEditingControl.InvalidInputイベントが発生します。
次の例では、半角大文字のアルファベットと数字(0〜9)が入力可能になります。キーワード"X"で指定した16進数は、別のキーワードの"A"と"9"に含まれているので、無視されます。
下のコードでは、すべての半角文字の入力が許可されます。キーワード"AaK9"で指定した文字種は"H"に包含されているので、この部分は無視されます。
次に示す2つの例は、どちらもスペースを含むすべての文字種を許可するものです。デフォルトでは、最初の例のように設定されていますので、2つ目の例のようにキーワード"ZH"を指定しなくても同じ動作となります。
以下の2つのコードは、すべての文字種の入力を拒否します。スペースの入力も許可されません。この例が示すように、キーワード"^"は、その後に記述されたキーワードの補集合を表します。
また、入力可能な文字種から特定の文字種を除外することもできます。次のコードはすべての全角文字からサロゲート文字だけを除外します。
特定の文字を書式に設定することも可能です。記号から「^、@、\、$」の4文字を除外するには以下のように記述します。
全角 | 半角 | 説明 |
---|---|---|
A | A | 大文字のアルファベット(A〜Z) |
a | a | 小文字のアルファベット(a〜z) |
K | K | カタカナ(促音・拗音の小書き表記あり) |
N | N | カタカナ(促音・拗音の小書き表記なし) |
9 | 9 | 数字(0〜9) |
# | # | 数字および数字関連記号(0〜9、+ - $ % \ , .) |
@ | @ | 記号(! " # $ % & ' ( ) - = ^ ~ \ | @ ` [ { ; + : * ] } , < . > / ? _ 。 「 」 、 ・) |
B | B | 2進数(0または1) |
X | X | 16進数(0〜9、A〜F) |
J | - | ひらがな(促音・拗音の小書き表記あり) |
G | - | ひらがな(促音・拗音の小書き表記なし) |
Z | - | すべての全角文字 |
T | - | サロゲート ペア文字 |
D | - | 2バイト文字(サロゲート ペア文字を除いた全角文字) |
I | - | JIS X 0208文字で構成された文字 |
M | - | Shift JIS文字で構成された文字 |
V | - | IVS(Ideographic Variation Sequence)文字 |
- | H | すべての半角文字 |
- | ^ | 指定した書式に含まれないすべての文字 |
- | \ | エスケープ・シーケンス |
半角文字と全角文字は、その文字のShift-JISコードを使って識別されます。 |
文字種の設定は、デザイン画面からは専用の「書式の設定」エディタを使用して容易に設定できます。このエディタは以下のいずれかの方法で起動します。
- コントロールのスマート タグから「書式の編集...」を選択
- プロパティウィンドウのFormatプロパティをアクティブした時に表示される「…」ボタンを押下
以下に、入力可能な文字種を設定する具体例を示します。
次のコードは、半角大文字のアルファベット(A〜Z)と2進数(0, 1)のみを許可します。
Imports GrapeCity.Win.MultiRow Imports InputManCell = GrapeCity.Win.MultiRow.InputMan Dim GcTextBoxCell1 As New InputManCell.GcTextBoxCell() GcTextBoxCell1.Format = "AB" GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcTextBoxCell1})
using GrapeCity.Win.MultiRow; using InputManCell = GrapeCity.Win.MultiRow.InputMan; InputManCell.GcTextBoxCell gcTextBoxCell1 = new InputManCell.GcTextBoxCell(); gcTextBoxCell1.Format = "AB"; gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcTextBoxCell1 });
次の例では、半角大文字のアルファベットと数字(0〜9)が入力可能になります。キーワード"X"で指定した16進数は、別のキーワードの"A"と"9"に含まれているので、無視されます。
下のコードでは、すべての半角文字の入力が許可されます。キーワード"AaK9"で指定した文字種は"H"に包含されているので、この部分は無視されます。
次に示す2つの例は、どちらもスペースを含むすべての文字種を許可するものです。デフォルトでは、最初の例のように設定されていますので、2つ目の例のようにキーワード"ZH"を指定しなくても同じ動作となります。
GcTextBoxCell1.Format = "" GcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.Both GcTextBoxCell1.Format = "ZH" GcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.Both
gcTextBoxCell1.Format = ""; gcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.Both; gcTextBoxCell1.Format = "ZH"; gcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.Both;
以下の2つのコードは、すべての文字種の入力を拒否します。スペースの入力も許可されません。この例が示すように、キーワード"^"は、その後に記述されたキーワードの補集合を表します。
GcTextBoxCell1.Format = "^" GcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.None GcTextBoxCell1.Format = "^ZH" GcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.None
gcTextBoxCell1.Format = "^"; gcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.None; gcTextBoxCell1.Format = "^ZH"; gcTextBoxCell1.AllowSpace = GrapeCity.Win.Editors.AllowSpace.None;
また、入力可能な文字種から特定の文字種を除外することもできます。次のコードはすべての全角文字からサロゲート文字だけを除外します。
特定の文字を書式に設定することも可能です。記号から「^、@、\、$」の4文字を除外するには以下のように記述します。
文字列の自動変換
AutoConvertプロパティをTrueに設定すると、Format プロパティの設定内容に基づいて、変換可能な文字はすべて自動的に変換されます。たとえば、Formatプロパティで"A"キーワードが設定されていると、小文字を入力しても自動的に大文字に変換されます。また、全角文字だけが許可されている場合は、入力された半角文字は全角文字に変換されます。
セル内部で行われる自動変換の手順を以下に示します。
半角カタカナ、全角カタカナ、およびひらがなは、次のように変換されます。
セル内部で行われる自動変換の手順を以下に示します。
- 小文字から大文字、または大文字から小文字への変換を行います。
- 手順1の変換が行われない場合、全角から半角、または半角から全角への変換を行います。
- 手順2の変換が行われない場合、全角大文字から半角小文字、全角小文字から半角大文字、半角大文字から全角小文字、半角小文字から全角大文字のいずれかの変換を行います。
半角カタカナ、全角カタカナ、およびひらがなは、次のように変換されます。
- 半角カタカナは全角カタカナに変換。変換できない場合はひらがなに変換。
- 全角カタカナは半角カタカナに変換。変換できない場合はひらがなに変換。
- ひらがなは全角カタカナに変換。変換できない場合は半角カタカナに変換。
Formatプロパティに"^V"が設定された場合、IVS文字およびIVSの親となる漢字(以下、親字)は以下のように変換されます。
"^V"(IVS文字を除外する) | |
---|---|
IVS文字 | 親字に変換されます |
親字 | そのまま入力されます |
スペース入力の制御
AllowSpaceプロパティは、Formatプロパティの設定に依存せずに入力可能なスペースの種類を設定します。AllowSpaceプロパティがAllowSpace.Wideに設定されている場合、Formatプロパティにキーワード"H"のみが設定されていても、セルには全角のスペースのみ入力可能です。また、同様にAllowSpaceプロパティがAllowSpace.Narrowに設定されている場合、キーワード"Z"のみが設定されていても、半角のスペースだけが入力可能になります。
AllowSpaceの値 | 説明 |
---|---|
Both | 半角、全角の両方のスペースが入力可能 |
Narrow | 半角のスペースのみ入力可能 |
Wide | 全角のスペースのみ入力可能 |
None | スペースの入力はできません |
既存のテキストにスペースが含まれているときに、AllowSpaceプロパティをAllowSpace.Noneに設定すると、それらのスペースがすべて削除されます。 |