我有一个数据库长这样:
如上图所示,除了Month
列之外,所有列都是TinyInt(1)
类型,而Month
列是Varchar
类型。现在我有一段代码:
Dim con1 As MySqlConnection = New MySqlConnection("server=192.168.2.87;userid=root;password=admin1950;database=inventory")
Dim sql1 As MySqlCommand = New MySqlCommand("Select * from ri_closure", con1)
Dim ds1 As DataSet = New DataSet
Dim adapter1 As MySqlDataAdapter = New MySqlDataAdapter
con1.Open()
adapter1.SelectCommand = sql1
adapter1.Fill(ds1, "MyTable")
DataGridView2.DataSource = ds1.Tables(0)
con1.Close()
ds1.Tables(0).Columns(2).DataType = GetType(Boolean)
Me.DataGridView2.Columns(1).Frozen = True
Dim i As Integer
For i = 0 To DataGridView2.Columns.Count - 1
DataGridView2.Columns.Item(i).SortMode = DataGridViewColumnSortMode.Programmatic
Next
DataGridView2.Columns(0).Visible = False
DataGridView2.Columns(1).DefaultCellStyle.BackColor = Color.LightBlue
现在它看起来是这样的: 现在您可以看到输出,我相信您不想要那些红色的。它刺激眼睛。这是我用于解决此问题的代码。
For Each rw As DataGridViewRow In DataGridView2.Rows
For ii As Integer = 2 To rw.Cells.Count - 1
If rw.Cells(ii).Value = False Then
rw.Cells(ii).Style.BackColor = Color.Red
ElseIf rw.Cells(ii).Value = True Then
rw.Cells(ii).Style.BackColor = Color.White
End If
Next
Next
现在我有一个问题,希望您能帮忙回答。我想做的是将未选中的单元格变成红色,而不是保持默认状态。请问如何实现这一点?
不再显示空复选框,而是与上面的图像相同。
另外一个希望生成填充复选框,以替换未选中的值,因为我有检查代码。
我尝试了一些代码,这是输出结果。
感谢你未来的帮助。
CellPainting
事件。如果(e.ColumnIndex = 0)
,则表示使用索引为0的列的自定义绘制逻辑。 - Reza AghaeiCheckBoxRenderer
不支持使用与 Windows 主题不同的颜色。 - Reza Aghaei