2012-08-15 6 views
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가 발생하지 않는지 알고 싶습니다.

귀하의 도움에 감사드립니다.

답변

0

것 당신

dataGridView1.DataSource = your DataSource would be assigned here; 
dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 
dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 

for (int i = 0; i < dataGridView1.Columns.Count; i++) 
{ 
    int colw = grd.Columns[i].Width; 
    dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; 
    dataGridView1.Columns[i].Width = colw; 
} 
이 솔루션 작업
관련 문제