在我弄清楚如何使用 RGB 值更改不同单元格的边框颜色以生成随机颜色之后,我现在也想更改每个单元格的背景颜色。这是为了DataGridView
. 下面是我的相关代码,它允许我更改单元格边框颜色,现在该代码中的某处有一种更改每个单元格背景颜色的方法,但我不熟悉此代码,因为它来自免费软件。有谁知道我必须在这段代码中更改什么来影响每个单元格的背景颜色?
这是我的代码:
在我弄清楚如何使用 RGB 值更改不同单元格的边框颜色以生成随机颜色之后,我现在也想更改每个单元格的背景颜色。这是为了DataGridView
. 下面是我的相关代码,它允许我更改单元格边框颜色,现在该代码中的某处有一种更改每个单元格背景颜色的方法,但我不熟悉此代码,因为它来自免费软件。有谁知道我必须在这段代码中更改什么来影响每个单元格的背景颜色?
这是我的代码:
打印背景颜色的解决方案类似于钢笔解决方案,只是您需要使用画笔,通常是SolidBrush
:
Dim brushColor as New SolidBrush(someColor)
e.Graphics.FillRectangle(brushColor ,_
New Rectangle(ColumnLeft(ColPage, ColAt), _
tmpTop, _
ColumnWidth(ColPage, ColAt), _
CellHeight))
请注意,由于您在此矩形上绘制文本和其他图形,因此您可能希望先绘制背景颜色,然后再绘制所有其他图形。(否则,您最终会得到一个没有文字的纯色矩形。)
我使用以下代码更改 DataGrid BackColor。通常,您将数组、表或数据集指定为 DataGrid 的 DataSource。所以,我在我的数据源 DataTable 中循环,然后查找我想要更改的行的索引。
Private Sub DataGridForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dgr1.DataSource = TimeDifftbl
dgr1.PreferredColumnWidth = 250
Dim cellText As String
Dim dr As DataRow
For n As Integer = 0 To TimeDifftbl.Rows.Count - 1
dr = TimeDifftbl.Rows(n)
cellText = dr.Item(2)
If cellText = "Tot. RunTime" Then
dgr1.CurrentRowIndex = n
dgr1.Select(n)
dgr1.SelectionBackColor = BackColor.LightGray
End If
Next
End Sub