I'm working on DataGridView and was wondering if there's a property that automatically makes cells bigger if the content requires it.
So far I have, at the end of the DataGridViewBindingComplete handler:
dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
But unfortunately, that didn't do the trick.
Here's what I tried so far:
public partial class Form1 : Form
{
private void dgv1BindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
}
public Form1()
{
InitializeComponent();
// [...] set up datasource: orders
dataGridView1.AutoGenerateColumns = false;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridView1.DataSource = orders;
DataGridViewTextBoxColumn idCol = new DataGridViewTextBoxColumn();
idCol.DataPropertyName = "id";
idCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
idCol.HeaderText = "#";
idCol.DisplayIndex = 0;
DataGridViewTextBoxColumn placedCol = new DataGridViewTextBoxColumn();
placedCol.DataPropertyName = "placed";
placedCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
placedCol.HeaderText = "Time Placed";
placedCol.DisplayIndex = 1;
// [...] more of these columns
dataGridView1.Columns.Add(idCol);
dataGridView1.Columns.Add(placedCol);
// [...] adding the rest of the columns
dataGridView1.DataBindingComplete += dgv1BindingComplete;
}
}
With the following result:
The answer was hidden in another Stackoverflow question: How to set DataGridView textbox column to multi-line?
Setting the DefaultCellStyle.WrapMode to TriState.True did the trick.
datagridview1.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True
datagridview1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders
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