PowerTools MultiRow for Windows Forms 8.0J
フィールドオブジェクトによる書式設定

ここでは、フィールドオブジェクトを使用した書式設定について説明します。

概要
GcMaskCellには、表示にInputManのGcMaskコントロールのフィールドオブジェクトのサブセットが提供されます。
GcMaskCellでは、次の3種類のフィールドオブジェクトが用意されており、これらのオブジェクトを使って書式を設定することができます。

これらのフィールドオブジェクトをMaskFieldCollectionクラスに追加することで、マスク書式を作成します。

フィールドの追加と削除

マスク書式は前項で解説した3つのフィールドオブジェクトを組み合わせて作成します。たとえば、郵便番号書式を作成するには、以下のフィールドオブジェクトをコレクションに追加します。

コードによる設定

オブジェクトをコレクションに追加するには、Addメソッドまたは、AddRangeメソッドを使用します。
次のサンプルコードは、GcMaskCellに郵便番号書式を設定する例です。MaskFieldCollection.AddRangeメソッドを使用してMaskFieldCollectionにフィールドを追加しています。

Imports GrapeCity.Win.MultiRow
Imports InputManCell = GrapeCity.Win.MultiRow.InputMan

Dim GcMaskCell1 = New InputManCell.GcMaskCell()

' フィールドオブジェクトを作成します。 
Dim MaskPatternField1 As InputManCell.MaskPatternField = New InputManCell.MaskPatternField("\D", 3, 3)
Dim MaskLiteralField1 As InputManCell.MaskLiteralField = New InputManCell.MaskLiteralField()
Dim MaskPatternField2 As InputManCell.MaskPatternField = New InputManCell.MaskPatternField("\D", 4, 4)

MaskLiteralField1.Text = "-"

' フィールドをコレクションに追加してセルに書式を設定します。 
GcMaskCell1.Fields.AddRange(New InputManCell.MaskField() {MaskPatternField1, MaskLiteralField1, MaskPatternField2})

GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcMaskCell1})
GcMultiRow1.RowCount = 5
                                                                
using GrapeCity.Win.MultiRow;
using InputManCell = GrapeCity.Win.MultiRow.InputMan;

InputManCell.GcMaskCell gcMaskCell1 = new InputManCell.GcMaskCell();

// フィールドオブジェクトを作成します。 
InputManCell.MaskPatternField maskPatternField1 = new InputManCell.MaskPatternField("\\D", 3, 3);
InputManCell.MaskLiteralField maskLiteralField1 = new InputManCell.MaskLiteralField();
InputManCell.MaskPatternField maskPatternField2 = new InputManCell.MaskPatternField("\\D", 4, 4);

maskLiteralField1.Text = "-";

// フィールドをコレクションに追加してセルに書式を設定します。 
gcMaskCell1.Fields.AddRange(new InputManCell.MaskField[] { maskPatternField1, maskLiteralField1, maskPatternField2 });

gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcMaskCell1 });
gcMultiRow1.RowCount = 5;
                            

フィールドオブジェクトをMaskFieldCollectionから削除するには、Removeメソッドまたは、RemoveAtメソッドを使用します。

  • セルの設定を変更した場合、変更を反映させるためにテンプレートをMultiRowに割り当てなおす必要があります。

次のサンプルコードは、MaskFieldCollectionの先頭のフィールドを削除する例です。

' コレクションの先頭のオブジェクトを削除します。
Dim GcMaskCell As GrapeCity.Win.MultiRow.InputMan.GcMaskCell = DirectCast(GcMultiRow1(0, 0), GrapeCity.Win.MultiRow.InputMan.GcMaskCell)
GcMaskCell.Fields.RemoveAt(0)
                                                                
// コレクションの先頭のオブジェクトを削除します。
GrapeCity.Win.MultiRow.InputMan.GcMaskCell gcMaskCell = (GrapeCity.Win.MultiRow.InputMan.GcMaskCell)gcMultiRow1[0, 0];
gcMaskCell.Fields.RemoveAt(0);
                                                                

デザイン画面での設定

デザイン画面ではフィールドオブジェクトを設定できる「入力フィールドの編集」エディタから容易な設定が可能です。 このエディタは次のいずれかの方法で起動でき、GcMaskCellで設定可能な3種類のフィールドを組み合わせて設定します。

このエディタでは、コレクションにフィールドを追加すると同時に各フィールドのテキストのフォントや色といったスタイルを設定することができます。


(図)フィールド毎に異なったスタイルを設定

各フィールドの機能
ここでは、GcMaskCellに設定可能な3種類のフィールドについて、すべてのフィールドに共通な設定項目と各フィールドに特化した設定項目にわけて解説します。

すべてのフィールドクラスに共通な設定

これらのプロパティは、GcMaskCellで利用可能なすべてのフィールドオブジェクトに共通な設定項目です。
プロパティ 説明
BackColor フィールド背景色を設定します。
Font フィールドに表示される文字列のフォントを設定します。
ForeColor フィールド背景色を設定します。
Margin フィールド領域の外枠の距離を設定します。
セルの境界線からの距離や、他のフィールドとの間隔を設定する際に使用します。
Padding フィールド領域からテキストの表示エリアまでの距離を設定します。

パターンフィールド (MaskPatternField)

パターンフィールドは、GcMaskCellの最も特徴的な機能である入力マスクを設定するフィールドです。
パターンフィールドで最も重要なプロパティはPatternプロパティで、入力マスクを定義するためのキーワードを設定することができます。
プロパティ 説明
AutoConvert Patternプロパティで設定された文字種に自動で変換するかどうか設定します。
MaxLength Patternプロパティで設定されたキーワードを繰り返す最大文字数を設定します。
MinLength Patternプロパティで設定されたキーワードを繰り返す最小文字数を設定します。
PasswordChar フィールドをパスワード文字として表示するときの文字を設定します。
Pattern 入力マスクを定義する正規表現のキーワード(メタ文字)を設定します。
PromptChar プロンプト文字を設定します。
UseSystemPasswordChar パスワード文字をシステムで定義された文字で表示するかどうか設定します。

◆ Pattern プロパティで使用可能な表現のタイプ

表現のタイプ 説明
8進数(ASCII) ASCII文字を表現するときだけ使用します。「\040」のように、頭に0をつけて必ず3桁の数値で表現します。
16進数(ASCII) ASCII文字を表現するときだけ使用します。「\x20」のように、\xに続いて必ず2桁の数値(頭に0を付ける)で表現します。
16進数(Unicode) すべての文字を表現できます。「\u0020」のように、\uに続いて必ず4桁の数値(頭に0を付ける)で表現します。
キーワード 下表で説明するキーワード(メタ文字)です。
文字 キーワード以外の文字です。

◆ Pattern プロパティで使用可能なキーワード

1. 主要なキーワード

半角 全角 説明
\A \A 大文字のアルファベットを表します。[A-Z]または[A-Z]と同等です。
\a \a 小文字のアルファベットを表します。[a-z]または[a-z]と同等です。
\D \D 数字を表します。[0-9]または[0-9]と同等です。
\B \B 2進数を表します。[0-1]または[0-1]と同等です。
\X \X 16進数を表します。[0-9A-Fa-f]または[0-9A-Fa-f]と同等です。
\W \W すべての英数字を表します。[a-zA-Z_0-9]または[a-zA-Z_0-9]と同等です。
\K \K カタカナ(促音・拗音の小書き表記あり)を表します。
\N \N カタカナ(促音・拗音の小書き表記なし)を表します。
\H - すべての半角文字を表します。
- \J ひらがな(促音・拗音の小書き表記あり)を表します。
- \G ひらがな(促音・拗音の小書き表記なし)を表します。
- \Z すべての全角文字を表します。
- \T サロゲート ペア文字を表します。
- \I JIS X 0208文字を表します。
- \M Shift JIS文字を表します。
- \V IVS(Ideographic Variation Sequence)文字を表します。

半角文字と全角文字は、その文字のShift-JISコードを使って識別されます。

2. 補助的なキーワード      

メタ文字 説明
^ その後に続く文字グループの補集合をあらわします。
- 文字の範囲を指定します。
\(Chr(92)) キーワードをリテラル文字として表示

以下にパターンフィールドでの書式設定の例をあげます。
Patternプロパティ MaxLengthプロパティ MinLengthプロパティ 表示例 説明
\Z 0 50 あア漢1Aa 0文字以上、50文字以下のすべての全角を表します。
\D 3 5 1234 3文字以上、5文字以下のすべての半角数字を表します。
1-3,a-c,A-C 10 10 1234 10文字の1,2,3,a,b,c,A,B,Cを表します。
A-Z 0 65535 ABCDE 半角大文字アルファベットを表します。\Aと同等です。
H^a-z 0 65535 12ABアイウ 小文字のアルファベットを除くすべての半角文字を表します。
^\T 0 65535 あア漢1Aa サロゲート ぺア文字を除くすべての文字を表します。

リテラル文字フィールド (MaskLiteralField)

リテラル文字フィールド(MaskLiteralFieldクラス)は、セルに表示するリテラル文字を設定します。  
プロパティ 説明
Text 表示するリテラル文字を設定します。

列挙型フィールド (MaskEnumerationField)

列挙型フィールド(MaskEnumerationFieldクラス)は、設定された列挙体の項目から選択して文字列をセルに表示することができます。このフィールドには、列挙体で設定された文字列以外の文字は入力できません。
列挙体に設定された文字列を選択するには、セルのスピン機能によって順次表示させるか、列挙型フィールドにドロップダウンリストを表示してリストから選択することができます。
ドロップダウンリストはフィールド単位で表示されるため、1つのセルに複数の列挙体フィールドを設定すれば、複数のドロップダウンリストを持ったセルを作成することもできます。

プロパティ 説明
AutoConvert Patternプロパティで設定された文字種に自動で変換するかどうか設定します。
AutoDropDown フィールドにカレットが移動されたときに、自動でドロップダウンリストを表示するかどうか設定します。
DropDownEnabled フィールドのドロップダウン機能を有効にするかどうか設定します。
Items 文字列の列挙体を設定します。
PromptChar プロンプト文字を設定します。
SpinIncremnet スピンによって列挙体を増減させる項目の数を設定します。
 
参照

 

 


© 2008-2015 GrapeCity inc. All rights reserved.