PowerTools MultiRow for Windows Forms 8.0J
ユーザー定義の条件付きセルスタイル

ダイナミック セルスタイル(DynamicCellStyle)を使用すると、ユーザー定義の条件でセルスタイルを適用できます。ダイナミック セルスタイルの条件はコーディングで設定するため、設計時にデザイナから使用することはできません。
ダイナミック セルスタイルの作成
次のコードは、セルの背景色を1行ごとに変更します。

Imports GrapeCity.Win.MultiRow

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim DynamicCellStyle1 As New DynamicCellStyle()
    DynamicCellStyle1.ConditionHandler = New DynamicCellStyleConditionHandler(AddressOf MyCondition)

    Dim Template1 As Template = Template.Default
    Template1.Row.DefaultCellStyle = DynamicCellStyle1
    GcMultiRow1.Template = Template1
    GcMultiRow1.RowCount = 3
End Sub

Private Function MyCondition(ByVal context As DynamicCellStyleContext) As CellStyle
    Dim CellStyle1 As New CellStyle
    ' 1行おきにセルの背景色を変更する
    If context.CellScope = CellScope.Row AndAlso (context.RowIndex Mod 2) = 0 Then
        CellStyle1.BackColor = Color.LightCyan
    Else
        CellStyle1.BackColor = Color.LightSalmon
    End If
    Return CellStyle1
End Function
using GrapeCity.Win.MultiRow;

private void Form1_Load(object sender, EventArgs e)
{
    DynamicCellStyle dynamicCellStyle1 = new DynamicCellStyle();
    dynamicCellStyle1.ConditionHandler = new DynamicCellStyleConditionHandler(MyCondition);

    Template template1 = Template.Default;
    template1.Row.DefaultCellStyle = dynamicCellStyle1;
    gcMultiRow1.Template = template1;
    gcMultiRow1.RowCount = 3;
}

private CellStyle MyCondition(DynamicCellStyleContext context)
{
    CellStyle cellStyle1 = new CellStyle();
    // 1行おきにセルの背景色を変更する
    if (context.CellScope == CellScope.Row && (context.RowIndex % 2) == 0)
    {
        cellStyle1.BackColor = Color.LightCyan;
    }
    else
    {
        cellStyle1.BackColor = Color.LightSalmon;
    }
    return cellStyle1;
}

実行結果は次のようになります。
   
参照

 

 


© 2008-2015 GrapeCity inc. All rights reserved.