在winfrom程序里面 DataGridViewButtonColumn列 按键的背景色怎样修改

时间:2022-12-10 14:48:33
如题
如何修改datagridview内定义为DataGridViewButtonColumn列的按钮的背景色 不是Cell的背景色

9 个解决方案

#1


引用楼主  的回复:
如题
如何修改datagridview内定义为DataGridViewButtonColumn列的按钮的背景色 不是Cell的背景色

使用
DataGridViewColumns.FindControl("按钮ID")来获取按钮,然后可以随意改变它的样式

#2


C/S里面有FindControl?

#3


引用 2 楼  的回复:
C/S里面有FindControl?

哦,你是c/s的哈,
不好意思

#4


c/s里,通过单元格样式,应该还是可以设置的吧

#5


单元格样式只能设置cell的背景色 我是想改变cell中 button的背景色

#6



  private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.ColumnIndex == 2)
            {
                e.Handled = true;
                
                using (SolidBrush brush = new SolidBrush(Color.Red))
                {
                    e.Graphics.FillRectangle(brush, e.CellBounds);
                }
                ControlPaint.DrawBorder(e.Graphics, e.CellBounds, Color.Yellow, ButtonBorderStyle.Outset);
            }
        }

由于DataGridView的Button列是由Graphics绘制上去的,而不是真正的Button控件。所以绘制出来不是很好看,不过button的背景色是改了

#7


十分感谢 我试一下

#8


那这样的话 是不是button上面的文字就会被覆盖 不会显示文字了

#9


为什么重绘之后就没有点击的效果了呢

#1


引用楼主  的回复:
如题
如何修改datagridview内定义为DataGridViewButtonColumn列的按钮的背景色 不是Cell的背景色

使用
DataGridViewColumns.FindControl("按钮ID")来获取按钮,然后可以随意改变它的样式

#2


C/S里面有FindControl?

#3


引用 2 楼  的回复:
C/S里面有FindControl?

哦,你是c/s的哈,
不好意思

#4


c/s里,通过单元格样式,应该还是可以设置的吧

#5


单元格样式只能设置cell的背景色 我是想改变cell中 button的背景色

#6



  private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.ColumnIndex == 2)
            {
                e.Handled = true;
                
                using (SolidBrush brush = new SolidBrush(Color.Red))
                {
                    e.Graphics.FillRectangle(brush, e.CellBounds);
                }
                ControlPaint.DrawBorder(e.Graphics, e.CellBounds, Color.Yellow, ButtonBorderStyle.Outset);
            }
        }

由于DataGridView的Button列是由Graphics绘制上去的,而不是真正的Button控件。所以绘制出来不是很好看,不过button的背景色是改了

#7


十分感谢 我试一下

#8


那这样的话 是不是button上面的文字就会被覆盖 不会显示文字了

#9


为什么重绘之后就没有点击的效果了呢