0

始める前に注意してください..これは顧客がどのように見えるかを望んでいるため、誰かが「ひどいUI/スタイル/ルックス/その他」を持っている場合、私は同意するかもしれませんし、同意しないかもしれませんが、これは彼らが望んでいるものです. 意見は歓迎しますが、これは彼らの要求です。:)

SingleVertical CellBorderStyle を適用した DataGridView があります。最後のセルで終わるのではなく、垂直の列区切り線をコントロールの最後まで下げようとしています。OnPaint などをオーバーライドせずにこれを行う方法はありますか?

4

1 に答える 1

0

既に SingleVertical CellBorderStyle があるため、残りのスペースを 1 つの大きな空白の最終行で埋めることができます。

//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 ポイントほど差し引く必要がある場合があります。

于 2012-05-19T00:35:24.667 に答える