マウスの下の行が強調表示されるように、フォーム上にDataGridViewを設定しようとしています。私は、現在選択されている行がMouseEnterで強調表示されない点を除いて、次の点を扱っています。マウスオーバー時に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
次の写真は、選択されていないランダムな行の上にマウスを置いたものです。ベージュはハイライトの色です。
この写真は、現在選択されている行の上にマウスです。マウスが上に来たときにバックカラーをBlanchedAlmondに変更したい。
だから、私は考えて変更し、その行選択された1つを作るための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
ヘルプ