我希望获取DataGridView的标题单元格的背景颜色,我尝试了一些方法,但是得到的结果为空并且RGB值为0,0,0。
我尝试过以下代码:
Color cl = dataGridView1.Columns["<Column>"].HeaderCell.Style.BackColor; //<AnyColumn>
我需要重新绘制标题单元格的背景颜色,使其与重新绘制之前的颜色相同,并且要考虑到大小的修改。
请帮忙提供一个解决方案,我已经搜索了很多但没有找到有用的帮助。
我希望获取DataGridView的标题单元格的背景颜色,我尝试了一些方法,但是得到的结果为空并且RGB值为0,0,0。
我尝试过以下代码:
Color cl = dataGridView1.Columns["<Column>"].HeaderCell.Style.BackColor; //<AnyColumn>
我需要重新绘制标题单元格的背景颜色,使其与重新绘制之前的颜色相同,并且要考虑到大小的修改。
请帮忙提供一个解决方案,我已经搜索了很多但没有找到有用的帮助。
DataGridView
使用样式继承,因此除非单个标头单元格与默认值不同,否则其 BackColor
将设置为 Color.Empty
。ColumnHeadersDefaultCellStyle.BackColor
属性。EnableHeadersVisualStyles
设置为 true(默认值),该值将被忽略,并使用视觉样式渲染器绘制标头。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
EnableHeadersVisualStyles=false;
。我已经测试过两种方式: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;
GridView
标记中使用了CssClass
。我认为如果你在标记中使用HeaderCell.Style.BackColor
,你就可以得到它。 - Iqbal