[c#] DataGridView의 헤더와 셀 레이아웃 얼라인먼트(정렬)
행이나 열의 헤더 레이아웃 얼라인먼트를 설정하려면 굳이 코드를 작성하는 거보단 속성 창의 ColumnHeadersDefaultCellStyle이나 RowHeadersDefaultCellStyle에서 alignment 값을 설정하는 게 간단하다.
칼럼 헤더의 레이아웃 얼라인먼트를 가운데로 해도 문자열은 한가운데에 출력되지 않고 오른쪽으로 해도 오른쪽 끝에 붙지 않는다. 칼럼 헤더에는 소트 기능이 있는데 칼럼 헤더를 클릭하면 헤더의 오른쪽 끝에 삼각형 두 개가 위아래로 나타난다. 이게 출력될 자리를 확보해 놓고 나머지 공간에서 얼라인먼트를 하기 때문에 그렇다. 이 공간을 없애려면 소트 기능을 꺼야 한다.
모든 칼럼들의 소트 기능을 해제하려면 아래와 같이 한다. for 대신 foreach를 쓰는 게 더 깔끔하다.
foreach (DataGridViewColumn item in dataGridView1.Columns)
{
item.SortMode = DataGridViewColumnSortMode.NotSortable;
}
특정 칼럼의 소트 기능만 해제하려면 아래와 같이 한다. 칼럼 이름 대신 칼럼 인덱스를 입력해도 된다.
dataGridView1.Columns["column name"].SortMode = DataGridViewColumnSortMode.NotSortable;
특정 행이나 열만 얼라인먼트를 다르게 하려면 아래와 같이 한다.
dataGridView1.Rows[1].Cells[0].Style.Alignment = DataGridViewContentAlignment.MiddleRight;