使用填充图案填充DataGridView单元格

时间:2017-03-10 09:09:05

标签: c# datagridview cell hatchstyle

有没有办法用HatchPattern i C#填充DataGridView单元格?

我尝试使用dataGridView1.Rows [n] .Cells [m] .Style,但这样我只能改变单元格的背景颜色。

1 个答案:

答案 0 :(得分:1)

您需要所有者绘制单元格,即对CellPainting事件进行编码..

using System.Drawing.Drawing2D;
..
private void dataGridView1_CellPainting(object sender, 
                                       DataGridViewCellPaintingEventArgs e)
{
    Rectangle cr = e.CellBounds;
    e.PaintBackground(cr, true);

    Color c1 = Color.FromArgb(64, Color.GreenYellow);
    Color c2 = Color.FromArgb(64, e.State == DataGridViewElementStates.Selected ? 
               Color.HotPink : Color.RosyBrown) ;

    if (e.RowIndex == 2 && (e.ColumnIndex >= 3))
        using (HatchBrush brush = new HatchBrush(HatchStyle.LargeConfetti, c1, c2))
        {
            e.Graphics.FillRectangle(brush, cr );
        }
    e.PaintContent(cr);
}

enter image description here

请注意,我将阴影颜色设置为半透明,以便更好地阅读内容。我还检查了其中一个是否正在选择单元格。