DataGridView.CurrentCell Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets or sets the currently active cell.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public DataGridViewCell CurrentCell { get; set; }

Property Value

Type: System.Windows.Forms.DataGridViewCell

The DataGridViewCell that represents the current cell, or null if there is no current cell. The default is the first cell in the first column or null if there are no cells in the control.

Exception Condition

The value of this property cannot be set because changes to the current cell cannot be committed or canceled.


The specified cell when setting this property is in a hidden row or column.

Re-entrant calling is only allowed when the DataGridView is bound to a DataSource. Re-entrant calling results from a change to the underlying data.


The specified cell when setting this property is not in the DataGridView.

When you set a cell as the current cell, it will scroll into view if it is not currently displayed. The current cell cannot be a header cell, a disabled cell, or a cell in a hidden row or column.

You can set this property to null to temporarily remove the focus rectangle, but when the control receives focus and the value of this property is null, it is automatically set to the value of the FirstDisplayedCellproperty.

When you change the value of this property, the SelectionChanged event occurs before the CurrentCellChanged event. Any SelectionChanged event handler accessing the CurrentCell property at this time will get its previous value.

When you bind the DataGridView to an external data source, this property is reset to its default value.

The following code example illustrates how to ensure that the current cell is visible after sorting by setting the FirstDisplayedCell property to the cell retrieved through the CurrentCell property. This code works only with an unbound DataGridView control. With a DataGridView control bound to an external data source, the current cell is not automatically persisted when sorting.

To run this example, paste the following code into a form that contains a DataGridView named dataGridView1. In C#, you must also connect the Sorted event to the event handler.

private void dataGridView1_Sorted(object sender, EventArgs e)
    this.dataGridView1.FirstDisplayedCell = this.dataGridView1.CurrentCell;

.NET Framework
Available since 2.0
Return to top