2011-04-05 9 views
2

나는 DataGridViewDock 속성이 "채우기"로 설정되어 있습니다. 그래서 내 양식의 크기를 조정하면 DataGridView 크기가 조정됩니다. 내 경우에는 고정 값으로 DataGridView 열 너비를 설정했습니다. 그래서 같이 :datagridview 및 양식 크기 조정 C#

dgGrid.Columns[0].Width = 50; 
dgGrid.Columns[1].Width = 126; 
dgGrid.Columns[2].Width = 100; 

나는 컨트롤의 크기를 조정하면 비례 적으로 크기를 조정할 내 DataGridView의 열을 시도하고있다. 위와 같이 격자 열을 설정하면 프로그래밍 방식으로 어떻게 할 수 있습니까? 코드를 도와주세요. 고맙습니다.

+4

코드를 작성할 때 대문자를 사용하는 것처럼 보입니다. 왜 영어를 쓰는가? –

+0

너비를 백분율로 설정하면 해결 방법이됩니다. 나쁜 WinForms하려면이 지원하지 않습니다. 현재 쓸모없는 WinForms 대신 WPF 로의 전환을 고려하십시오. –

+1

@Claus : 누군가 WPF에서 뭔가를 구현하는 방법을 모를 때 "WPF로 전환"하는 것이 왜 대답이되었는지 잘 모르겠습니다. WPF 로의 전환은 확실히 기적의 치료는 아닙니다. 특히 WinForms를 포함하지 않고 WPF 응용 프로그램에 대한 DataGridView 컨트롤을 어디에서 찾을 수 있습니까? –

답변

2

의 새로운 크기에 따라 새로운 폭을 canlculate하는 DataGridView.Resize 이벤트를 사용할 수 있습니다. 왜 그렇게해야하는지 잘 모르겠습니다. 질문은 많은 배경 정보를 제공하지 않습니다.

AutoResizeColumns method을 호출하는 것이 가장 좋은 해결책은 지정된 크기 모드를 사용하여 모든 열의 너비를 자동으로 조정하는 것입니다. 양식의 Resize 이벤트에 대한 처리기에서이 메서드를 호출합니다. 예를 들어 :

protected override void OnResize(EventArgs e) 
{ 
    myDataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); 
} 

This MSDN articleDataGridView 제어를위한 옵션을 크기 조정에 대한 자세한 정보를 제공합니다.

1

당신은 때 하드 코드 열 너비 값이 일의 우아한 방법이 더 특별히 없습니다 모든 열이

+0

코드를 통해 논리를 알려주십시오. – Thomas

0
datagridview.Columns["columnName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
+2

이 속성을 설정하면 사용자가 마우스를 사용하여 열의 크기를 수동으로 조정할 수 없습니다. –

관련 문제