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