MESCIUS SPREAD for Windows Forms 17.0J
マス目の設定(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
参照

 

 


© MESCIUS inc. All rights reserved.