| MultiRow Windows Forms > Developer's Guide > Using MultiRow > Conditional Cell Styles > User Defined Conditional Styles |
You can apply cell styles based on user defined conditions if you use dynamic cell styles (DynamicCellStyle class). Since the conditions for dynamic cell styles are set with code, they are not available in the designer.
The following code changes the cell backcolor for alternating rows.
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
' Change the Back Color of alternating row
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();
// Change the Back Color of alternating row
if (context.CellScope == CellScope.Row && (context.RowIndex % 2) == 0)
{
cellStyle1.BackColor = Color.LightCyan;
}
else
{
cellStyle1.BackColor = Color.LightSalmon;
}
return cellStyle1;
}
|
The following image shows the result of the code at runtime:
