2009-07-06 3 views
13

DataGridView winforms 컨트롤에 "견적 가격"열이 있습니다. "Unit"howerver와 같이 공백없이 오른쪽 열을 정렬 할 수 있습니다. 열 머리글을 "견적 가격"이라는 열 이름으로 맞출 수 없습니다. TopRight, MiddleRight 및 bottomRight를 사용하려고 시도했지만 성공하지 못했습니다.Winforms의 DataGridView 열 머리글 오른쪽 정렬

SelectedAdditionalCost.Columns["Quote Price"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; // Doesn't want to right align 
SelectedAdditionalCost.Columns["Quote Price"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; // column contents No worries, right aligns. 

나는 정말 바보 같은 짓을하고 있다고 확신한다. 그러나 나는이 일을 할 수 없다.

답변

22

아래 내용을 작성하면서 문제가 될 수있는 것을 깨달았습니다. DataGridView 열에 공백을 넣을 수 없습니다. 열 이름이 아닌 머리글 텍스트로 열 컬렉션을 참조하고 있습니다. 당신이 당신의 예제에서 가지고있는 것처럼 코드를 실행하려고 할 때 런타임 에러 (null 참조 예외)를 쳤습니다. 그 옆 어쨌든

:

당신이 나를 완벽하게 작품을 코드, 나는 (생성자) 내 DataGridView에 테스트 프로젝트 중 하나에 다음과 같은 구현 및 헤더 텍스트 오른쪽 정렬 :

dataGridView.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 
dataGridView.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 

헤더 텍스트의 공백을 언급 했으므로 2 열의 텍스트에 공백이 포함되었습니다.

필자가 언급 한 한 가지 사실은 정렬 문자 모양이 셀 여백에 완전히 정렬되지 않을 때 헤더 텍스트가 올바르게 정렬되지 않는 것처럼 보일 수 있다는 것입니다.

dataGridView.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; 
0

당신은 오히려 하나 하나하는 것보다, 모든 열 머리글처럼 정렬 할 수

//MiddleRight Alignment for DataGridView Column Headers 
DataGridViewCellStyle colHeaderStyle = new DataGridViewCellStyle(); 
colHeaderStyle.Alignment= DataGridViewContentAlignment.MiddleRight; 
..... some other styles (like color, font etc) ......... 
dataGridView_custom.ColumnHeadersDefaultCellStyle = colHeaderStyle; 

참조가 VB answer에서 촬영 ..이 어떤 차이가 있는지

은 참조 확인 테스트.