MESCIUS CalendarGrid for Windows Forms 4.0J > CalendarGridの使い方 > InputManCell > GcMask型セル > 書式を設定する(CalendarGcMaskCellType) |
CalendarGcMaskCellTypeの入力領域はフィールドから構成されており、フィールドによって書式の設定やスタイルを定義することが可能です。フィールドを設定するには、Fieldsプロパティが参照するMaskFieldCollectionを使用します。MaskFieldCollectionは、セル内の各フィールドを表すMaskFieldのコレクションを保持するクラスです。
CalendarGcMaskCellTypeの書式を設定するには、直接フィールドオブジェクトを追加する方法と、キーワード文字列によりフィールドを自動生成する方法があります。それぞれの方法による書式の設定方法については、以下のトピックを参照してください。
AutoConvertプロパティをTrueに設定すると、Fieldsプロパティのパターンフィールド(MaskPatternField.Pattern)で設定された書式に基づいて、変換可能な文字はすべて自動的に変換されます。たとえば、書式が\A{8}のように設定されていると、小文字を入力しても自動的に大文字に変換されます。また、全角文字だけが許可されている場合は、入力された半角文字は全角文字に変換されます。
セル内部で行われる自動変換の手順を以下に示します。
半角カタカナ、全角カタカナ、およびひらがなは、次のように変換されます。
Fieldsプロパティのパターンフィールドに"^\V"が設定された場合、IVS(Ideographic Variation Sequence)文字およびIVSの親となる漢字(以下、親字)は以下のように変換されます。
"^\V"(IVS文字を除外する) | |
---|---|
IVS |
親字に変換されます |
親字 |
そのまま入力されます |
AcceptsCrLfプロパティを使用してクリップボードへ改行を含む文字列をコピー、または貼り付けた場合の改行コードの扱いを設定できます。AcceptsCrLfプロパティは、以下の3つの動作から選択します。
AcceptsCrLfの値 | 説明 |
---|---|
NoControl |
改行コードはそのままでコピー、貼り付けを行います。従来のInputManのマスクコントロールと同じ動作です。 |
Filter |
全ての改行コードを削除しコピー、貼り付けを行います。 |
Cut |
最初の改行コード以降の文字列を削除します。標準コントロールと同じ動作です。 |
AcceptsTabCharプロパティを使用してクリップボードへタブ文字を含む文字列をコピー、または貼り付けた場合のタブ文字の扱いを設定できます。
AcceptsTabCharの値 | 説明 |
---|---|
NoControl | タブ文字はそのままでコピー、貼り付けを行います。従来のInputManのマスクコントロールと同じ動作です。 |
Filter | 全てのタブ文字を削除しコピー、貼り付けを行います。 |
Cut | 最初のタブ文字以降の文字列を削除します。 |
CalendarGcMaskCellType.FieldsプロパティまたはGcMask.Fieldsプロパティのコレクションを通して特定のフィールドにアクセスできます。
フィールドコレクション内の特定のフィールドにアクセスする場合、次のいずれかの方法を使うことができます。
コレクションのインデックスがわかっている場合は、インデックスを使ってフィールドを取得することができます。
次のサンプルはインデックスを使ってフィールドを取得する例です。ここではCalendarGcMaskCellTypeの3番目のフィールドを取得する例です。
Dim cell As GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType = CType(GcCalendarGrid1(DateTime.Today)(1, 0).CellType, GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType) Dim myField As GrapeCity.Win.CalendarGrid.InputMan.MaskField = cell.Fields(2)
GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType cell =
(gcCalendarGrid1[DateTime.Today][1,0].CellType as GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType);
GrapeCity.Win.CalendarGrid.InputMan.MaskField myField = cell.Fields[2];
また、インデックスを使わず、設定したキー(文字列)を使って特定のフィールドにアクセスすることもできます。
キーは、各フィールドのNameプロパティにキーとして文字列を設定します。
次のサンプルはキーを使ってフィールドを取得する例です。ここでは CalendarGcMaskCellTypeの特定のフィールドのNameプロパティに予め"Key1"という文字列が設定されていることを前提にしています。
Dim cell As GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType = CType(GcCalendarGrid1(DateTime.Today)(1, 0).CellType, GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType) Dim myField As GrapeCity.Win.CalendarGrid.InputMan.MaskField = cell.Fields("Key1")
GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType cell = (gcCalendarGrid1[DateTime.Today][1, 0].CellType as GrapeCity.Win.CalendarGrid.InputMan.CalendarGcMaskCellType); GrapeCity.Win.CalendarGrid.InputMan.MaskField myField = cell.Fields["Key1"];