How can I change the row height of a DataGridView?
I set the value for the property but height doesn't change. Any other property has to be checked before setting this one.
How can I change the row height of a DataGridView?
I set the value for the property but height doesn't change. Any other property has to be checked before setting this one.
You can set the row height by code:
dataGridView.RowTemplate.Height = 35;
Or in the property panel:
Note the + sign to the left of the Row Template section name. You need to open it to see the Height field. By default it is closed.
What you have to do is to set the MinimumHeight property of the row. Not only the Height property. That's the key. Put the code bellow in the CellPainting event of the datagridview
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
foreach(DataGridViewRow x in dataGridView1.Rows)
{
x.MinimumHeight = 50;
}
}
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
}
Make sure AutoSizeRowsMode is set to None else the row height won't matter because well... it'll auto-size the rows.
Should be an easy thing but I fought this for a few hours before I figured it out.
Better late than never to respond =)
this worked for me
int totalRowHeight = dataGridView1.ColumnHeadersHeight;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
totalRowHeight += row.Height;
}
if (totalRowHeight < dataGridView1.Height)
{
totalRowHeight = dataGridView1.Height;
totalRowHeight -= dataGridView1.ColumnHeadersHeight;
int rowHeight = totalRowHeight / dataGridView1.Rows.Count;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.MinimumHeight = rowHeight;
}
dataGridView1.Refresh();
}