【发布时间】:2021-04-14 18:12:23
【问题描述】:
(第一次发帖,请轻点。)
我的表单上有一个 DataGridView,它使当前行和列中的单元格突出显示。我还添加了一个 CellPainting 部件,为活动单元格提供更厚的边框。代码如下:
Private Sub DGV_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DGV.CellPainting
Try
Dim CRow As Integer = DGV.CurrentCell.RowIndex
Dim CCol As Integer = DGV.CurrentCell.ColumnIndex
If e.RowIndex = CRow AndAlso e.ColumnIndex = CCol Then
Using BBrush As Brush = New SolidBrush(Color.Black)
Using BPen As Pen = New Pen(BBrush, 2)
Dim CBRect As Rectangle = e.CellBounds
CBRect.Width -= 1
CBRect.Height -= 1
CBRect.X = rectDimensions.Left
CBRect.Y = rectDimensions.Top
e.Graphics.DrawRectangle(BPen, CBRect)
e.Handled = True
End Using
End Using
End If
Catch
End Try
End Sub
上面的工作正常,因为它为单元格添加了边框,但是活动单元格没有显示为突出显示,只是白色。我不明白,因为没有指定 FillRectangle() 或除黑色边框之外的任何其他颜色,所以我认为它会保持单元格颜色相同,但它不会像其行和列中的其他单元格一样变为蓝色.
任何帮助将不胜感激:)
【问题讨论】:
标签: vb.net datagridview