InputManセル(GcDateTimeCell)を継承する方法

文書番号 : 84062     文書種別 : 使用方法     登録日 : 2019/06/11     最終更新日 : 2019/06/11
文書を印刷する
対象製品
MultiRow for Windows Forms 10.0J
詳細
InputManセル(GcCharMask/GcComboBox/GcDateTime/GcMask/GcNumber/GcTextBox/GcTimeSpan/GcPostalCell/GcAddressBoxCell型セル)は、InputMan for Windows Formsをもとにした入力コントールを提供しているため、通常のセル型よりも複雑な構成になっています。
以下の実装例では、GcDateTimeCellの基底クラスであらかじめフィールドやサイドボタンを実装する実装例を紹介しています。

[Visual Basic]
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim myGcDate As New MyGcDateTimeCellType()

    GcMultiRow1.Template = GrapeCity.Win.MultiRow.Template.CreateGridTemplate(New GrapeCity.Win.MultiRow.Cell() {myGcDate})
    GcMultiRow1.RowCount = 5
End Sub

' InputManセル(GcDateTimeCell)を継承したセル型
Public Class MyGcDateTimeCellType
    Inherits GrapeCity.Win.MultiRow.InputMan.GcDateTimeCell
    Public Sub New()
        ' 最初にフィールドなどを消去します。
        Me.Fields.Clear()
        Me.DisplayFields.Clear()
        Me.SideButtons.Clear()

        ' フィールドなどを初期化します。
        initializeCollections()
    End Sub

    ' フィールドなどを初期化します。
    Private Sub initializeCollections()
        Me.Fields.AddRange("yyyy/MM/dd")
        Me.DisplayFields.AddRange("yyyy/M/d")
        Me.SideButtons.Add(New GrapeCity.Win.MultiRow.InputMan.DropDownButton())
        Me.SideButtons.Add(New GrapeCity.Win.MultiRow.InputMan.SpinButton())
    End Sub

    Private Function ShouldSerializeSideButtons() As Boolean
        Return False
    End Function
End Class

[C#]
private void Form1_Load(object sender, EventArgs e)
{
    MyGcDateTimeCellType myGcDate = new MyGcDateTimeCellType();
    gcMultiRow1.Template = GrapeCity.Win.MultiRow.Template.CreateGridTemplate(new GrapeCity.Win.MultiRow.Cell[] { myGcDate });
    gcMultiRow1.RowCount = 5;
}
// InputManセル(GcDateTimeCellType)を継承したセル型
public class MyGcDateTimeCellType : GrapeCity.Win.MultiRow.InputMan.GcDateTimeCell
{
    public MyGcDateTimeCellType()
    {
        // 最初にフィールドなどを消去します。
        this.Fields.Clear();
        this.DisplayFields.Clear();
        this.SideButtons.Clear();

        // フィールドなどを初期化します。
        initializeCollections();
    }

    // フィールドなどを初期化します。
    private void initializeCollections()
    {
        this.Fields.AddRange("yyyy/MM/dd");
        this.DisplayFields.AddRange("yyyy/M/d");
        
        this.SideButtons.Add(new GrapeCity.Win.MultiRow.InputMan.DropDownButton());
        this.SideButtons.Add(new GrapeCity.Win.MultiRow.InputMan.SpinButton());
    }

    private bool ShouldSerializeSideButtons()
    {
        return false;
    }
}