DataGridView.InvalidateRow(Int32) Method

Definition

Invalidates the specified row of the DataGridView, forcing it to be repainted.

public:
 void InvalidateRow(int rowIndex);
public void InvalidateRow (int rowIndex);
member this.InvalidateRow : int -> unit
Public Sub InvalidateRow (rowIndex As Integer)

Parameters

rowIndex
Int32

The index of the row to invalidate.

Exceptions

rowIndex is not in the valid range of 0 to the number of rows minus 1.

Examples

The following code example illustrates how to use the InvalidateRow method in a row-painting scenario. In the example, the row is invalidated when the current cell changes, forcing the row to repaint itself.

This code is part of a larger example available in How to: Customize the Appearance of Rows in the Windows Forms DataGridView Control.

// Forces the row to repaint itself when the user changes the 
// current cell. This is necessary to refresh the focus rectangle.
void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
{
    if (oldRowIndex != -1)
    {
        this.dataGridView1.InvalidateRow(oldRowIndex);
    }
    oldRowIndex = this.dataGridView1.CurrentCellAddress.Y;
}
' Forces the row to repaint itself when the user changes the 
' current cell. This is necessary to refresh the focus rectangle.
Sub dataGridView1_CurrentCellChanged(ByVal sender As Object, _
    ByVal e As EventArgs) Handles dataGridView1.CurrentCellChanged

    If oldRowIndex <> -1 Then
        Me.dataGridView1.InvalidateRow(oldRowIndex)
    End If
    oldRowIndex = Me.dataGridView1.CurrentCellAddress.Y

End Sub

Remarks

Use this method to force a row to repaint itself. This method is useful in owner-drawing scenarios where you handle the RowPrePaint or RowPostPaint events.

For more information about painting and invalidation, see Invalidate.

Applies to

See also