C# DatGridView标题单元格';背景色

C# DatGridView标题单元格';背景色,c#,datagridview,colors,paint,C#,Datagridview,Colors,Paint,我想得到DataGridView标题单元格的背景色,我已经做了一个技巧,但它给了我空和RGB=0,0,0 我尝试了以下代码: Color cl = dataGridView1.Columns["<Column>"].HeaderCell.Style.BackColor; //<AnyColumn> Color cl=dataGridView1.Columns[“”].HeaderCell.Style.BackColor// 我必须重新绘制标题单元格的背景,颜色与修改

我想得到DataGridView标题单元格的背景色,我已经做了一个技巧,但它给了我空和RGB=0,0,0

我尝试了以下代码:

 Color cl = dataGridView1.Columns["<Column>"].HeaderCell.Style.BackColor; //<AnyColumn>
Color cl=dataGridView1.Columns[“”].HeaderCell.Style.BackColor//
我必须重新绘制标题单元格的背景,颜色与修改大小之前相同


请建议一个解决方案,我已经搜索了很多,但没有有用的帮助。
DataGridView
使用样式继承,因此除非单个标题单元格与默认值不同,否则其
背景色将设置为
Color.Empty

请改用
ColumnHeadersDefaultCellStyle.BackColor
属性


请注意,当
enableheadervisualstyles
设置为true(默认值)时,该值将被忽略,并将使用视觉样式渲染器绘制标题。

我发现这很有效。您需要设置
enableHeaderVisualStyles=fasle
我在两方面都进行了测试:

dataGridView1.EnableHeadersVisualStyles = false;

DataGridViewColumn dataGridViewColumn = dataGridView1.Columns["Column1"];
dataGridViewColumn.HeaderCell.Style.BackColor = Color.Magenta;
dataGridViewColumn.HeaderCell.Style.ForeColor = Color.Yellow;

Color cl = dataGridViewColumn.HeaderCell.Style.BackColor;
//or   
Color cl2 = dataGridView1.Columns["Column1"].HeaderCell.Style.BackColor;

经过一些努力,我终于写下了代码和一些建议 它是一个通用代码,可以在任何网格的C#WinForm绘制方法中调用,将网格、列名称和绘制图形对象传递给它

我添加了一个大小为4的填充矩形,它从上一列的Right-2开始到下一列的Left+2,因此它隐藏了垂直条

Public Sub VerticalBarHide(ByVal grd As KryptonExtendedGrid, ByVal colname As String(), ByVal e As System.Drawing.Graphics)
    Dim rectHeader As Rectangle
    grd.EnableHeadersVisualStyles = False
    Dim bgColor As Color
    bgColor = grd.ColumnHeadersDefaultCellStyle.BackColor
    For Each name As String In colname
        rectHeader = grd.GetCellDisplayRectangle(grd.Columns(name).Index, -1, True)
        rectHeader.X = rectHeader.X + rectHeader.Width - 2
        rectHeader.Y += 1
        rectHeader.Width = 2 * 2
        rectHeader.Height -= 2
        e.FillRectangle(New SolidBrush(bgColor), rectHeader)
    Next

End Sub

似乎您正在
GridView
标记中使用
CssClass
。我想如果你在标记中使用
HeaderCell.Style.BackColor
,你可以把它拿回来。我的问题是关于>net C#,VB.net WinForms相关的,所以我需要解决这个问题that@Iqbal,在Windows窗体中,我们没有aspx@Arshad对不起,我的错误。当我们“dataGridView1.EnableHeaderVisualStyles=false”时,这很好;但问题就在这里,它给出的值为0,0,0,0意味着empty@Bradley史密斯:所以我在禁用了它的视觉样式属性“Color cl=dataGridView1.ColumnHeadersDefaultCellStyle.BackColor”之后使用了这个属性,并且成功地实现了