PowerTools MultiRow for Windows Forms 8.0J
ConditionHandler プロパティ
使用例 

実際のCellStyleを生成できる条件ハンドラを取得または設定します。
構文
Public Overridable Property ConditionHandler As DynamicCellStyleConditionHandler
public virtual DynamicCellStyleConditionHandler ConditionHandler {get; set;}

プロパティ値

実際のCellStyleを返すDynamicCellStyleConditionHandlerデリゲート。
解説
ConditionHandlerをイベント処理メソッドに関連付けると、特定のDynamicCellStyleContextに従ってCellStyleが返されます。
使用例
次のサンプルコードは、"NewRowDefaultCellStyle"を実装する方法を示します。DynamicCellStyleRow.DefaultCellStyleに設定し、描画された行が新規行の場合に特定のCellStyleを返しています。このサンプルコードは、DynamicCellStyleクラスに示されている詳細なコード例の一部を抜粋したものです。
private void Form1_Load(object sender, EventArgs e)
{

    Template template1 = Template.CreateGridTemplate(7);

    DynamicCellStyle dynamicCellStyle1 = new DynamicCellStyle();
    dynamicCellStyle1.ConditionHandler += new DynamicCellStyleConditionHandler(GetNewRowDefaultCellStyle);

    template1.Row.DefaultCellStyle = dynamicCellStyle1;

    gcMultiRow1.Template = template1;
    gcMultiRow1.RowCount = 10;
}

public CellStyle GetNewRowDefaultCellStyle(DynamicCellStyleContext context)
{
    CellStyle newRowDefaultCellStyle = new CellStyle();

    // If all cell's value in a specific row are empty, the cell's back color is white, otherwise color is yellow.
    newRowDefaultCellStyle.BackColor = Color.White;
    if (context.CellScope == CellScope.Row)
    {
        for (int i = 0; i < context.GcMultiRow.Rows[context.RowIndex].Cells.Count; i++)
        {
            object value = context.GcMultiRow.Rows[context.RowIndex][i].Value;

            if (value != null)
            {
                newRowDefaultCellStyle.BackColor = Color.Yellow;
                break;
            }
        }
    }
    
    return newRowDefaultCellStyle;
}
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim template1 As Template = Template.CreateGridTemplate(7)

    Dim dynamicCellStyle1 As New DynamicCellStyle()
    dynamicCellStyle1.ConditionHandler = AddressOf Me.GetNewRowDefaultCellStyle

    template1.Row.DefaultCellStyle = dynamicCellStyle1

    gcMultiRow1.Template = template1
    gcMultiRow1.RowCount = 10
End Sub

Public Function GetNewRowDefaultCellStyle(ByVal context As DynamicCellStyleContext) As CellStyle
    Dim newRowDefaultCellStyle As New CellStyle()

    ' If all cell's value in a specific row are empty, the cell's back color is white, otherwise color is yellow.
    newRowDefaultCellStyle.BackColor = Color.White
    If context.CellScope = CellScope.Row Then

        For i As Integer = 0 To context.GcMultiRow.Rows(context.RowIndex).Cells.Count - 1
            Dim value As Object = context.GcMultiRow.Rows(context.RowIndex)(i).Value
            If value <> Nothing Then
                newRowDefaultCellStyle.BackColor = Color.Yellow
                Exit For
            End If
        Next
    End If
    Return newRowDefaultCellStyle
End Function
参照

DynamicCellStyle クラス
DynamicCellStyle メンバ
DynamicCellStyleConditionHandler デリゲート
DynamicCellStyleContext クラス

 

 


© 2008-2015 GrapeCity inc. All rights reserved.