开发者

Changing the row height of a DataGridView

How can I change the row height of a DataGridView?

I set the value for the property but height doesn't cha开发者_如何学运维nge. Any other property has to be checked before setting this one.


You need to set the Height property of the RowTemplate:

var dgv = new DataGridView();
dgv.RowTemplate.Height = 30;


You can set the row height by code:

dataGridView.RowTemplate.Height = 35;

Or in the property panel:

Changing the row height of a DataGridView

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.


Try

datagridview.RowTemplate.MinimumHeight = 25;//25 is height.

I did that and it worked fine!


you can do that on RowAdded Event :

_data_grid_view.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this._data_grid_view_RowsAdded);

private void _data_grid_view_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            _data_grid_view.Rows[e.RowIndex].Height = 42;
        }

when a row add to the dataGridView it just change it height to 42.


You also need to change the resizable property to true

    dataGridView1.RowTemplate.Resizable = DataGridViewTriState.True;
    dataGridView1.RowTemplate.Height = 50;


You need to :

dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;

Then :

dataGridView1.ColumnHeadersHeight = 60;


You can change the row height of the Datagridview in the .cs [Design].

Then click the datagridview Properties.

Look for RowTemplate and expand it,

then type the value in the Height.


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();

}


try simply:

dataGrid->Rows[i]->Height = 20;

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜