PowerTools CalendarGrid for Windows Forms 1.0J
書式を設定する(CalendarGcMaskCellType)

書式の設定

CalendarGcMaskCellTypeの入力領域はフィールドから構成されており、フィールドによって書式の設定やスタイルを定義することが可能です。フィールドを設定するには、Fieldsプロパティが参照するMaskFieldCollectionを使用します。MaskFieldCollectionは、セル内の各フィールドを表すMaskFieldのコレクションを保持するクラスです。

CalendarGcMaskCellTypeの書式を設定するには、直接フィールドオブジェクトを追加する方法と、キーワード文字列によりフィールドを自動生成する方法があります。それぞれの方法による書式の設定方法については、以下のトピックを参照してください。


文字の自動変換

AutoConvertプロパティをTrueに設定すると、Fieldsプロパティのパターンフィールド(MaskPatternField.Pattern)で設定された書式に基づいて、変換可能な文字はすべて自動的に変換されます。たとえば、書式が\A{8}のように設定されていると、小文字を入力しても自動的に大文字に変換されます。また、全角文字だけが許可されている場合は、入力された半角文字は全角文字に変換されます。 

 セル内部で行われる自動変換の手順を以下に示します。

  1. 小文字から大文字、または大文字から小文字への変換を行います。
  2. 手順1の変換が行われない場合、全角から半角、または半角から全角への変換を行います。
  3. 手順2の変換が行われない場合、全角大文字から半角小文字、全角小文字から半角大文字、半角大文字から全角小文字、半角小文字から全角大文字のいずれかの変換を行います。

半角カタカナ、全角カタカナ、およびひらがなは、次のように変換されます。

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"];


イベントの利用

フィールド間のキャレットの移動を検出するには、GcMask.FieldEnterおよびFieldLeaveイベントを使用します。


参照

 

 


© 2014 GrapeCity inc. All rights reserved.