How To Apply Alternate Backcolor For The Rows In Both Parent And Child Grid In Winforms Datagrid?
backcolor
datagrid
detailsview
styling
winforms
winforms-datagrid
This example illustrates how to apply alternate backcolor for the rows in both parent and child WinForms DataGrid (SfDataGrid).
You can apply alternate back color to rows in both the parent and child grids by hooking the QueryRowStyle event for both the child and parent DataGrid.
C
this.sfDataGrid1.QueryRowStyle += ParentDataGrid_QueryRowStyle;
void ParentDataGrid_QueryRowStyle(object sender, Syncfusion.WinForms.DataGrid.Events.QueryRowStyleEventArgs e)
{
if (sfDataGrid1.DetailsViewDefinitions.Count > 0)
{
if (e.RowType == Syncfusion.WinForms.DataGrid.Enums.RowType.DefaultRow)
{
if ((e.RowIndex / (sfDataGrid1.DetailsViewDefinitions.Count + 1)) % 2 == 0)
e.Style.BackColor = Color.LightGreen;
else
e.Style.BackColor = Color.Yellow;
}
}
}
gridViewDefinition.DataGrid.QueryRowStyle += ChildDataGrid_QueryRowStyle;
void ChildDataGrid_QueryRowStyle(object sender, Syncfusion.WinForms.DataGrid.Events.QueryRowStyleEventArgs e)
{
if(e.RowType == Syncfusion.WinForms.DataGrid.Enums.RowType.DefaultRow)
{
if (e.RowIndex % 2 == 0)
e.Style.BackColor = Color.Yellow;
else
e.Style.BackColor = Color.LightGreen;
}
}
VB
AddHandler Me.sfDataGrid1.QueryRowStyle, AddressOf ParentDataGrid_QueryRowStyle
Private Sub ParentDataGrid_QueryRowStyle(ByVal sender As Object, ByVal e As Syncfusion.WinForms.DataGrid.Events.QueryRowStyleEventArgs)
If sfDataGrid1.DetailsViewDefinitions.Count > 0 Then
If e.RowType = Syncfusion.WinForms.DataGrid.Enums.RowType.DefaultRow Then
If (e.RowIndex / (sfDataGrid1.DetailsViewDefinitions.Count + 1)) Mod 2 = 0 Then
e.Style.BackColor = Color.LightGreen
Else
e.Style.BackColor = Color.Yellow
End If
End If
End If
End Sub
AddHandler gridViewDefinition.DataGrid.QueryRowStyle, AddressOf ChildDataGrid_QueryRowStyle
Private Sub ChildDataGrid_QueryRowStyle(ByVal sender As Object, ByVal e As Syncfusion.WinForms.DataGrid.Events.QueryRowStyleEventArgs)
If e.RowType = Syncfusion.WinForms.DataGrid.Enums.RowType.DefaultRow Then
If e.RowIndex Mod 2 = 0 Then
e.Style.BackColor = Color.Yellow
Else
e.Style.BackColor = Color.LightGreen
End If
End If
End Sub
