2012-04-28 76 views
0

開始之前請注意......這是客戶想要它的樣子,所以如果任何人有任何「這是可怕的用戶界面/風格/外觀/等」,我可能會也可能不會同意,但這是他們想要的。意見表示讚賞,但這是他們的要求。 :)使DataGridView SingleVertical CellBorderStyle一直向下延伸?

我有一個DataGridView,我已經應用SingleVertical CellBorderStyle。我試圖讓垂直列分隔線一路走到控制的盡頭,而不是在最後一個單元結束。有沒有辦法做到這一點,而不必重寫OnPaint或類似的東西?

回答

0

既然你已經有了SingleVertical CellBorderStyle,你可以用一個大空白最後一行填充剩下的空間:

//calculate the space already filled by column headers and rows 
int currentContentHeight = Grid.ColumnHeadersHeight; 
for (int i = 0; i < Grid.Rows.Count; i++) 
{ 
    currentContentHeight += Grid.Rows[i].Height; 
} 
//then calculate the space remaining 
int remainingHeightToEndOfControl = Grid.Height - currentContentHeight; 
//then fill it with one big blank final row: 
if (remainingHeightToEndOfControl > 0) 
{ 
    Grid.Rows.Add(); 
    Grid.Rows[Grid.Rows.Count - 1].Height = remainingHeightToEndOfControl; 
} 

您可能需要從remainingHeight扣除2點左右,考慮到控制邊界。