6

我需要编程更改 CellFormatting 事件中某些单元格的边框颜色。可以更改单个单元格的板颜色吗?

4

2 回答 2

10

你可以画一个矩形。在此示例中,我在选定的单元格上放置了一个红色边框。

private void dataGridView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
    {
        if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected == true)
        {
            e.Paint(e.CellBounds, DataGridViewPaintParts.All & ~DataGridViewPaintParts.Border);
            using (Pen p = new Pen(Color.Red, 1))
            {
                Rectangle rect = e.CellBounds;
                rect.Width -= 2;
                rect.Height -= 2;
                e.Graphics.DrawRectangle(p, rect);
            }
            e.Handled = true;
        }
    }
}
于 2014-02-10T19:49:42.823 回答
1

MSDN 描述了一种可以从 DataGridView 继承来覆盖默认边框样式的方法:DataGridViewAdvancedBorderStyle 类

不过,上面的绘画方法更简单。

于 2017-05-23T01:56:59.510 回答