DataGridView.RowTemplate Property


Gets or sets the row that represents the template for all the rows in the control.

 property System::Windows::Forms::DataGridViewRow ^ RowTemplate { System::Windows::Forms::DataGridViewRow ^ get(); void set(System::Windows::Forms::DataGridViewRow ^ value); };
public System.Windows.Forms.DataGridViewRow RowTemplate { get; set; }
member this.RowTemplate : System.Windows.Forms.DataGridViewRow with get, set
Public Property RowTemplate As DataGridViewRow

Property Value


A DataGridViewRow representing the row template.



The specified row when setting this property has its DataGridView property set.


The following code example illustrates how to use the row template to specify an initial row height and a minimum row height.

DataGridViewRow^ row = this->dataGridView1->RowTemplate;
row->DefaultCellStyle->BackColor = Color::Bisque;
row->Height = 35;
row->MinimumHeight = 20;

DataGridViewRow row = this.dataGridView1.RowTemplate;
row.DefaultCellStyle.BackColor = Color.Bisque;
row.Height = 35;
row.MinimumHeight = 20;
With Me.dataGridView1.RowTemplate
    .DefaultCellStyle.BackColor = Color.Bisque
    .Height = 35
    .MinimumHeight = 20
End With


Sometimes you want greater control over the appearance of DataGridView rows than what is provided by the various DataGridView cell style properties. The RowTemplate property lets you create and initialize a DataGridViewRow for use as a template by all rows, including the row for new records if AllowUserToAddRows is true.

This is useful when you are setting default values for properties such as row height. For example, you may want to increase the default row height in order to provide extra room beneath ordinary cell content for displaying content that spans multiple columns.

Setting the row template is necessary when external data is displayed using custom types derived from the DataGridViewRow class. With unbound DataGridView controls, you can programmatically populate the Rows collection with instances of your custom row type. When displaying external data, however, the rows are generated automatically, but they are based on the row template, which you can set to an instance of your custom row type.

If this property has not been set the first time you retrieve its value, a new DataGridViewRow is created and returned.

Applies to

See also