2
我有一個自定義控件,必要時顯示一個DataGridView彈出窗口,當一個按鈕被點擊。我想調整彈出窗口大小到DataGridView列的大小。 DataGridView創建時我設置了AutoSize模式。DataGridView不自動化欄直到顯示
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不會在控件顯示之前發生?
非常感謝您的幫助。