GcMaskCellの書式を設定するには、直接フィールドオブジェクトを追加する方法と、キーワード文字列によりフィールドを自動生成する方法があります。それぞれの方法による書式の設定方法については、以下のトピックを参照してください。
GcMaskCellは、リテラル文字列を設定し表示させることができます。リテラル文字とは、リテラルフィールド(MaskLiteralFieldクラス)で定義された文字列をそのまま表示する文字列をいいます。 ShowLiteralsプロパティを使えば、入力中にリテラル文字列を表示するかどうかを指定できます。
また、パターンフィールド(MaskPatternFieldクラス)には、プロンプト文字を設定することができます。プロンプト文字を使用することで、入力フィールドを明示的に表示したり入力文字数を視覚的に表すことができます。 プロンプト文字はGcMaskCellのPromptCharプロパティを使用して設定します。なお、各パターンフィールドのPromptCharプロパティを設定するとフィールドごとに異なるプロンプト文字も設定できます。
(図)プロンプト文字("_")
(図)2つ目のパターンフィールドのみ異なるプロンプト文字("*")
セル内部で行われる自動変換の手順を以下に示します。
- 小文字から大文字、または大文字から小文字への変換を行います。
- 手順1の変換が行われない場合、全角から半角、または半角から全角への変換を行います。
- 手順2の変換が行われない場合、全角大文字から半角小文字、全角小文字から半角大文字、半角大文字から全角小文字、半角小文字から全角大文字のいずれかの変換を行います。
- 半角カタカナは全角カタカナに変換。変換できない場合はひらがなに変換。
- 全角カタカナは半角カタカナに変換。変換できない場合はひらがなに変換。
- ひらがなは全角カタカナに変換。変換できない場合は半角カタカナに変換。
Fieldsプロパティのパターンフィールドに"^\V"が設定された場合、IVS(Ideographic Variation Sequence)文字およびIVSの親となる漢字(以下、親字)は以下のように変換されます。
"^\V"(IVS文字を除外する) | |
---|---|
IVS | 親字に変換されます |
親字 | そのまま入力されます |
フィールドコレクション内の特定のフィールドにアクセスする場合、次のいずれかの方法を使うことができます。
- インデックスからフィールドにアクセス
- キー(文字列)からフィールドにアクセス
コレクションのインデックスがわかっている場合は、インデックスを使ってフィールドを取得することができます。
次のサンプルはインデックスを使ってフィールドを取得する例です。ここではGcMaskCellの3番目のフィールドを取得する例です。
Dim cell As GrapeCity.Win.MultiRow.InputMan.GcMaskCell = DirectCast(GcMultiRow1.Rows(0).Cells(0), GrapeCity.Win.MultiRow.InputMan.GcMaskCell) Dim myField As GrapeCity.Win.MultiRow.InputMan.MaskField = cell.Fields(2)
GrapeCity.Win.MultiRow.InputMan.GcMaskCell cell = (gcMultiRow1.Rows[0].Cells[0] as GrapeCity.Win.MultiRow.InputMan.GcMaskCell);
GrapeCity.Win.MultiRow.InputMan.MaskField myField = cell.Fields[2];
また、インデックスを使わず、設定したキー(文字列)を使って特定のフィールドにアクセスすることもできます。
キーは、各フィールドのNameプロパティにキーとして文字列を設定します。
次のサンプルはキーを使ってフィールドを取得する例です。ここではGcMaskCellの特定のフィールドのNameプロパティに予め"Key1"という文字列が設定されていることを前提にしています。
Dim cell As GrapeCity.Win.MultiRow.InputMan.GcMaskCell = DirectCast(GcMultiRow1.Rows(0).Cells(0), GrapeCity.Win.MultiRow.InputMan.GcMaskCell) Dim myField As GrapeCity.Win.MultiRow.InputMan.MaskField = cell.Fields("Key1")
GrapeCity.Win.MultiRow.InputMan.GcMaskCell cell = (gcMultiRow1.Rows[0].Cells[0] as GrapeCity.Win.MultiRow.InputMan.GcMaskCell); GrapeCity.Win.MultiRow.InputMan.MaskField myField = cell.Fields["Key1"];