是否可以在C#中仅填充一半的单元格背景颜色GridView?

时间:2013-10-01 13:06:39

标签: c# winforms

我是一个提交数据的GridView表..我想由于某种原因填充每个单元格的背景颜色..但这里是捕获..我需要填充单元格的1/10颜色。是否有可能做到这一点?如果它 - 如何? 我正在使用带有c#的winforms。

非常感谢。

3 个答案:

答案 0 :(得分:2)

也许尝试这个解决方案(已测试)

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
    {   
        if (e.ColumnIndex >= 0 && e.ColumnIndex < 1 && e.RowIndex >= 0)
        {
            //Watch out for the Index of Rows (here 0 for testing)
            string text = this.dataGridView1.Rows[0].Cells[e.ColumnIndex].Value.ToString();

            // Clear cell 
            e.Graphics.FillRectangle(new SolidBrush(Color.Green), new Rectangle(e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Width / 10 , e.CellBounds.Height));
            e.Graphics.DrawString(text, this.Font, new SolidBrush(Color.Black), new Point(e.CellBounds.Left, e.CellBounds.Top + 2));
            e.Graphics.DrawRectangle(new Pen(Color.Silver), new Rectangle(e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Width - 1, e.CellBounds.Height - 1));
            e.Handled = true;
        }

    }

答案 1 :(得分:0)

如果我没有弄错,你可以使用CellPainting事件,但你必须自己绘制单元格。希望它可以帮到你。

答案 2 :(得分:0)

检查一下。

How to paint only DataGridView's cell background not its content?

在步骤中:

e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

为矩形定义自己的边界,而不是使用单元格的边界..