C# DatGridView标题单元格';背景色
我想得到DataGridView标题单元格的背景色,我已经做了一个技巧,但它给了我空和RGB=0,0,0 我尝试了以下代码: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// 我必须重新绘制标题单元格的背景,颜色与修改
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”之后使用了这个属性,并且成功地实现了