This documentation is archived and is not being maintained.

DataGridView.CurrentCell Property

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.


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 FirstDisplayedCell property.

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

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.