MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > セル型 > InputManセル > GcCharMask型セル > マス目の設定(GcCharMask型セル) |
GcCharMask型セルのマス目の設定方法について解説します。
セルに表示されるマス目は、CharBoxes プロパティが参照するCharBoxInfoCollection オブジェクトによって定義されます。CharBoxInfoCollection オブジェクトは、1つ1つのマス目を表すCharBoxInfo オブジェクトの集合を保持するコレクションです。つまり、キャラクタボックスコントロールでは、オブジェクトに保持されるCharBoxInfo オブジェクトをマス目の1つ1つとして表示します。
マス目を表すCharBoxInfo オブジェクトは、次の3つの種類のオブジェクトを持つことができます。
InputBoxInfo は、入力用の枠で1つのInputBoxに対して1文字入力することができます。LiteralBoxInfo は、任意の文字をリテラル文字として表示します。SeparatorBoxInfo は、入力枠を区切るハイフンを表示します。
GcCharMask型セルにマス目を設定するには、CharBoxes プロパティが参照するCharBoxInfoCollection オブジェクトのAdd メソッドを使用します。また、設定されているマス目をすべて削除するには、Clear メソッドを使用します。
次のサンプルコードは、郵便番号用の入力書式を例としたマス目を追加する例です。マス目間のスペースや境界線、マス目のサイズ等の設定も行っています。これらの外観の設定については「マス目の外観(GcCharMask型セル)」を参照してください。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcCharMaskCellType gcCharMask1 = new GrapeCity.Win.Spread.InputMan.CellType.GcCharMaskCellType() { PaintByControl = true }; gcCharMask1.CharBoxSpacing = 2; gcCharMask1.CharBoxes.Clear(); // キャラクターボックスの境界線を作成します。 GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo borderSingle = new GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo(new GrapeCity.Win.Spread.InputMan.CellType.Line(GrapeCity.Win.Spread.InputMan.CellType.LineStyle.Single, Color.Black)); GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo borderSingleGray = new GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo(new GrapeCity.Win.Spread.InputMan.CellType.Line(GrapeCity.Win.Spread.InputMan.CellType.LineStyle.Single, Color.OrangeRed)); GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo borderNone = new GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo(new GrapeCity.Win.Spread.InputMan.CellType.Line(GrapeCity.Win.Spread.InputMan.CellType.LineStyle.None, Color.White)); // リテラル文字を作成します。 GrapeCity.Win.Spread.InputMan.CellType.LiteralBoxInfo aLiteralBox = new GrapeCity.Win.Spread.InputMan.CellType.LiteralBoxInfo() { AutoSize = false, Size = new System.Drawing.Size(14, 24), ForeColor = Color.Black, Text = "〒", Border = borderNone }; // 郵便番号の前半3桁用の枠を作成します。 GrapeCity.Win.Spread.InputMan.CellType.InputBoxInfo aInputBoxl = new GrapeCity.Win.Spread.InputMan.CellType.InputBoxInfo() { AutoSize = false, Size = new System.Drawing.Size(18, 24), ForeColor = Color.Black }; // ハイフンを作成します。 GrapeCity.Win.Spread.InputMan.CellType.SeparatorBoxInfo aSeparatorBox = new GrapeCity.Win.Spread.InputMan.CellType.SeparatorBoxInfo() { AutoSize = false, Size = new System.Drawing.Size(10, 24), Border = borderNone }; // 郵便番号の後半4桁用の枠を作成します。 GrapeCity.Win.Spread.InputMan.CellType.InputBoxInfo aInputBoxs = new GrapeCity.Win.Spread.InputMan.CellType.InputBoxInfo() { AutoSize = false, Size = new System.Drawing.Size(16, 20), ForeColor = Color.Black, Border = borderSingleGray }; // GcCharMask型セルに作成したマス目を追加します。 gcCharMask1.CharBoxes.Add(aLiteralBox); gcCharMask1.CharBoxes.Add((GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)aInputBoxl.Clone()); gcCharMask1.CharBoxes.Add((GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)aInputBoxl.Clone()); gcCharMask1.CharBoxes.Add((GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)aInputBoxl.Clone()); gcCharMask1.CharBoxes.Add(aSeparatorBox); gcCharMask1.CharBoxes.Add((GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)aInputBoxs.Clone()); gcCharMask1.CharBoxes.Add((GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)aInputBoxs.Clone()); gcCharMask1.CharBoxes.Add((GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)aInputBoxs.Clone()); gcCharMask1.CharBoxes.Add((GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)aInputBoxs.Clone()); // GcCharMask型セルをセルに設定します。 fpSpread1.Sheets[0].Cells[1, 1].CellType = gcCharMask1; |
Visual Basic |
コードのコピー
|
---|---|
Dim gcCharMask1 As New GrapeCity.Win.Spread.InputMan.CellType.GcCharMaskCellType() With { .PaintByControl = True } gcCharMask1.CharBoxSpacing = 2 gcCharMask1.CharBoxes.Clear() ' キャラクターボックスの境界線を作成します。 Dim borderSingle As New GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo(New GrapeCity.Win.Spread.InputMan.CellType.Line(GrapeCity.Win.Spread.InputMan.CellType.LineStyle.[Single], Color.Black)) Dim borderSingleGray As New GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo(New GrapeCity.Win.Spread.InputMan.CellType.Line(GrapeCity.Win.Spread.InputMan.CellType.LineStyle.[Single], Color.OrangeRed)) Dim borderNone As New GrapeCity.Win.Spread.InputMan.CellType.CharBoxBorderInfo(New GrapeCity.Win.Spread.InputMan.CellType.Line(GrapeCity.Win.Spread.InputMan.CellType.LineStyle.None, Color.White)) ' リテラル文字を作成します。 Dim aLiteralBox As New GrapeCity.Win.Spread.InputMan.CellType.LiteralBoxInfo() With { .Size = New System.Drawing.Size(14, 24), .ForeColor = Color.Black, .Text = "〒", .Border = borderNone } ' 郵便番号の前半3桁用の枠を作成します。 Dim aInputBoxl As New GrapeCity.Win.Spread.InputMan.CellType.InputBoxInfo() With { .AutoSize = False, .Size = New System.Drawing.Size(18, 24), .ForeColor = Color.Black } ' ハイフンを作成します。 Dim aSeparatorBox As New GrapeCity.Win.Spread.InputMan.CellType.SeparatorBoxInfo() With { .Size = New System.Drawing.Size(10, 24), .Border = borderNone } ' 郵便番号の後半4桁用の枠を作成します。 Dim aInputBoxs As New GrapeCity.Win.Spread.InputMan.CellType.InputBoxInfo() With { .AutoSize = False, .Size = New System.Drawing.Size(16, 20), .ForeColor = Color.Black, .Border = borderSingleGray } ' GcCharMask型セルに作成したマス目を追加します。 gcCharMask1.CharBoxes.Add(aLiteralBox) gcCharMask1.CharBoxes.Add(DirectCast(aInputBoxl.Clone(), GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)) gcCharMask1.CharBoxes.Add(DirectCast(aInputBoxl.Clone(), GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)) gcCharMask1.CharBoxes.Add(DirectCast(aInputBoxl.Clone(), GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)) gcCharMask1.CharBoxes.Add(aSeparatorBox) gcCharMask1.CharBoxes.Add(DirectCast(aInputBoxs.Clone(), GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)) gcCharMask1.CharBoxes.Add(DirectCast(aInputBoxs.Clone(), GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)) gcCharMask1.CharBoxes.Add(DirectCast(aInputBoxs.Clone(), GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)) gcCharMask1.CharBoxes.Add(DirectCast(aInputBoxs.Clone(), GrapeCity.Win.Spread.InputMan.CellType.CharBoxInfo)) ' GcCharMask型セルをセルに設定します。 FpSpread1.Sheets(0).Cells(1, 1).CellType = gcCharMask1 |