DataGridViewRow Class


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

Represents a row in a DataGridView control.

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

public ref class DataGridViewRow : DataGridViewBand


Initializes a new instance of the DataGridViewRow class without using a template.


Gets the DataGridViewRow::DataGridViewRowAccessibleObject assigned to the DataGridViewRow.


Gets the collection of cells that populate the row.


Gets or sets the shortcut menu for the row.(Overrides DataGridViewBand::ContextMenuStrip.)


Gets the data-bound object that populated the row.


Gets the DataGridView control associated with this element.(Inherited from DataGridViewElement.)


Gets or sets the default styles for the row, which are used to render cells in the row unless the styles are overridden. (Overrides DataGridViewBand::DefaultCellStyle.)


Gets or sets the run-time type of the default header cell.(Inherited from DataGridViewBand.)


Gets a value indicating whether this row is displayed on the screen.(Overrides DataGridViewBand::Displayed.)


Gets or sets the height, in pixels, of the row divider.


Gets or sets the error message text for row-level errors.


Gets or sets a value indicating whether the row is frozen. (Overrides DataGridViewBand::Frozen.)


Gets a value indicating whether the DefaultCellStyle property has been set. (Inherited from DataGridViewBand.)


Gets or sets the row's header cell.


Gets or sets the header cell of the DataGridViewBand.(Inherited from DataGridViewBand.)


Gets or sets the current height of the row.


Gets the relative position of the band within the DataGridView control.(Inherited from DataGridViewBand.)


Gets the cell style in effect for the row.(Overrides DataGridViewBand::InheritedStyle.)


Gets a value indicating whether the row is the row for new records.


Gets a value indicating whether the band represents a row.(Inherited from DataGridViewBand.)


Gets or sets the minimum height of the row.


Gets or sets a value indicating whether the row is read-only.(Overrides DataGridViewBand::ReadOnly.)


Gets or sets a value indicating whether users can resize the row or indicating that the behavior is inherited from the DataGridView::AllowUserToResizeRows property.(Overrides DataGridViewBand::Resizable.)


Gets or sets a value indicating whether the row is selected. (Overrides DataGridViewBand::Selected.)


Gets the current state of the row.(Overrides DataGridViewElement::State.)


Gets or sets the object that contains data to associate with the band.(Inherited from DataGridViewBand.)


Gets or sets a value indicating whether the row is visible. (Overrides DataGridViewBand::Visible.)

System_CAPS_pubmethodAdjustRowHeaderBorderStyle(DataGridViewAdvancedBorderStyle^, DataGridViewAdvancedBorderStyle^, Boolean, Boolean, Boolean, Boolean)

Modifies an input row header border style according to the specified criteria.


Creates an exact copy of this row.(Overrides DataGridViewBand::Clone().)


Creates a new accessible object for the DataGridViewRow.


Clears the existing cells and sets their template according to the supplied DataGridView template.

System_CAPS_pubmethodCreateCells(DataGridView^, array<Object^>^)

Clears the existing cells and sets their template and values.


Constructs a new collection of cells based on this row.


Releases all resources used by the DataGridViewBand. (Inherited from DataGridViewBand.)


Releases the unmanaged resources used by the DataGridViewBand and optionally releases the managed resources. (Inherited from DataGridViewBand.)

System_CAPS_protmethodDrawFocus(Graphics^, Rectangle, Rectangle, Int32, DataGridViewElementStates, DataGridViewCellStyle^, Boolean)

Draws a focus rectangle around the specified bounds.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Releases the resources associated with the band.(Inherited from DataGridViewBand.)


Gets the shortcut menu for the row.


Gets the error text for the row at the specified index.


Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetPreferredHeight(Int32, DataGridViewAutoSizeRowMode, Boolean)

Calculates the ideal height of the specified row based on the specified criteria.


Returns a value indicating the current state of the row.


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Called when the band is associated with a different DataGridView.(Inherited from DataGridViewBand.)

System_CAPS_protmethodPaint(Graphics^, Rectangle, Rectangle, Int32, DataGridViewElementStates, Boolean, Boolean)

Paints the current row.

System_CAPS_protmethodPaintCells(Graphics^, Rectangle, Rectangle, Int32, DataGridViewElementStates, Boolean, Boolean, DataGridViewPaintParts)

Paints the cells in the current row.

System_CAPS_protmethodPaintHeader(Graphics^, Rectangle, Rectangle, Int32, DataGridViewElementStates, Boolean, Boolean, DataGridViewPaintParts)

Paints the header cell of the current row.


Raises the DataGridView::CellClick event. (Inherited from DataGridViewElement.)


Raises the DataGridView::CellContentClick event. (Inherited from DataGridViewElement.)


Raises the DataGridView::CellContentDoubleClick event. (Inherited from DataGridViewElement.)


Raises the DataGridView::CellValueChanged event. (Inherited from DataGridViewElement.)


Raises the DataGridView::DataError event. (Inherited from DataGridViewElement.)


Raises the Control::MouseWheel event. (Inherited from DataGridViewElement.)


Sets the values of the row's cells.


Gets a human-readable string that describes the row.(Overrides DataGridViewBand::ToString().)

The DataGridViewRow class represents a row in a DataGridView control. You can retrieve rows through the Rows and SelectedRows collections of the control.

Unlike a DataGridViewColumn, a DataGridViewRow physically contains a collection of all of the cells in that row. You can access this collection through the Cells property.

The DataGridViewRow class is used to access the individual cell elements, as well as to adjust the appearance and behavior of the row user interface (UI), such as height and cell style. Typically, you will want all rows or most rows in the control to share the same characteristics. To set cell styles for all rows in the control, set the properties of the object returned by the DataGridView::RowsDefaultCellStyle property. To set styles for alternating rows, use the DataGridView::AlternatingRowsDefaultCellStyle property. For more information about cell styles, see Cell Styles in the Windows Forms DataGridView Control. You can also use the DataGridView::RowTemplate property to define a row that will be used as a basis for all rows added to the control.

The DataGridView control will share DataGridViewRow objects across multiple data rows whenever possible to avoid performance penalties. Unless you are working with large amounts of data and experiencing performance issues, you can typically ignore row sharing. A shared row is indicated by an Index property value of -1. Some members of the DataGridViewRow class cannot be used with shared rows, but you can unshare a row by accessing it through the DataGridViewRowCollection::Item property. Rows can also become unshared in other ways. To access a row without unsharing it, use the DataGridViewRowCollection::SharedRow method. When working with large amounts of data, you should be aware of how rows are shared and unshared to avoid performance penalties. For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.

Notes to Inheritors:

When you derive from DataGridViewRow and add new properties to the derived class, be sure to override the Clone method to copy the new properties during cloning operations. You should also call the base class's Clone method so that the properties of the base class are copied to the new cell.

The following code example illustrates the use of this type. This example is part of a larger example available in How to: Manipulate Rows in the Windows Forms DataGridView Control.

// Set row labels.
void Button6_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )

   int rowNumber = 1;
   System::Collections::IEnumerator^ myEnum = safe_cast<System::Collections::IEnumerable^>(dataGridView->Rows)->GetEnumerator();
   while ( myEnum->MoveNext() )
      DataGridViewRow^ row = safe_cast<DataGridViewRow^>(myEnum->Current);
      if ( row->IsNewRow )
      row->HeaderCell->Value = String::Format( L"Row {0}", rowNumber );

      rowNumber = rowNumber + 1;

   dataGridView->AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders );

.NET Framework
Available since 2.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top