Is there any way to give each column in a DataGridView a percentage width of the total grid? I am currently using fixed widths but would like to give one column a 15% width, another one a 25% width, and so on so that 100% of the table is filled and resizes with the Grid.
Try using the DataGridViewColumn.FillWeight property. Basically you assign a weight to every column and the columns re-size according to those weights. The MSDN arcticle is not that great. See the below article for better explaination -
Presenting Data with the DataGridView Control in .NET 2.0—Automatic Column Sizing
Try this
private void DgvGrd_SizeChanged(object sender, EventArgs e)
{
dgvGrd.Columns[0].Width = (int)(dgvGrd.Width * 0.2);
dgvGrd.Columns[1].Width = (int)(dgvGrd.Width * 0.2);
dgvGrd.Columns[2].Width = (int)(dgvGrd.Width * 0.4);
dgvGrd.Columns[3].Width = (int)(dgvGrd.Width * 0.2);
// also may be a good idea to set FILL for the last column
// to accomodate the round up in conversions
dgvGrd.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With