我有一个自定义控件,当单击按钮时,它必须显示 DataGridView 弹出窗口。我想将弹出窗口的大小调整为 DataGridView 列的大小。创建 DataGridView 时,我已经设置了 AutoSize 模式。
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
在计算总列大小之前,我还调用了以下方法。
public void AutoResize()
{
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
dataGridView1.Refresh();
}
第一次显示弹出窗口时,它没有正确调整大小。据我所知,这是因为在 dataGridView 控件显示一次之前不会发生列的 AutoSize。
这是执行顺序。
CreateCustomControl -> CreateDataGridView(带数据)-> AddToCustomControl -> CallAutoResize -> ShowCustomControl(带 DataGridView)
一个简单的解决方案是让我在显示后调整控件的大小。我仍然想知道为什么在显示控件之前不会发生 AutoResize?
提前感谢您的帮助。