DataGridView在BackColor中的单元格透明度

时间:2013-12-17 11:15:02

标签: c# winforms datagridview transparency background-color

我需要DataGridView单元格中的透明度(即grid1.Rows[0].Cells[0].Style.BackColor = Color.FromArgb(20,120,120,120);)。我知道我需要创建一个新控件并继承DataGridView并将控件的背景设置为父颜色,这样我就能在单元格中使用透明度。

this回答:

已经涵盖了这一点
protected override void PaintBackground(Graphics graphics, Rectangle clipBounds,  Rectangle gridBounds)
  {
    base.PaintBackground(graphics, clipBounds, gridBounds);
    Rectangle rectSource = new Rectangle(this.Location.X, this.Location.Y, this.Width, this.Height);
    Rectangle rectDest = new Rectangle(0, 0, rectSource.Width, rectSource.Height);

    Bitmap b = new Bitmap(Parent.ClientRectangle.Width, Parent.ClientRectangle.Height);
    Graphics.FromImage(b).DrawImage(this.Parent.BackgroundImage, Parent.ClientRectangle);


    graphics.DrawImage(b, rectDest, rectSource, GraphicsUnit.Pixel);

    // I would like to set background the same as parent's background here
  }

但是,仅当父级具有背景图像时才有效。答案的作者也说了

  

[...]只是询问父母是否有背景图片,其他只是使用   父背景颜色绘制你的网格,这就是

那么如何使用父母的背景颜色?

0 个答案:

没有答案