6
我正在尝试在窗体上设置DataGridView,以便高亮显示鼠标下方的行。除了当前选定的行不会在MouseEnter上突出显示外,我已经完成了以下工作。在mouseover上更改datagridview中选定行的背景色
的形式包含4个独立的DataGridView并且被高亮显示应该是鼠标光标下的一个唯一的行。
Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter
If e.RowIndex > -1 Then
dgvPrjDwgs.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.BlanchedAlmond
End If
End Sub
Private Sub dgvPrjDwgs_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseLeave
If e.RowIndex > -1 Then
dgvPrjDwgs.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.DimGray
End If
End Sub
以下PIC是用鼠标在随机的非选择的行。米色是我想展示的高光颜色。
此PIC是用鼠标当前所选行上。当鼠标移过它时,我想让背景颜色变成BlanchedAlmond。
所以,我改变了思维和使用的MouseEnter,使该行的选择的一个尝试。这很好。但是,当鼠标离开数据网格并移动到另一个数据网格时,它会保留选中的行(错误)。我试着将所选的BackColor设置为与未选择的BackColor匹配,现在它根本不突出显示。
Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter
dgvPrjDwgs.DefaultCellStyle.SelectionBackColor = Color.BlanchedAlmond
If e.RowIndex > -1 Then
dgvPrjDwgs.Rows(e.RowIndex).Selected = True
End If
End Sub
Private Sub dgvPrjDwgs_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseLeave
dgvPrjDwgs.DefaultCellStyle.SelectionBackColor = Color.DimGray
End Sub
帮助请:)