2016-07-26 7 views
0

Könnte es möglich sein, die Vorderfarbe einer Zelle bei Mauseingabe zu ändern? Ich kann die gesamte Zellenfarbe bei der Mauseingabe ändern, aber ich möchte nur die Zellenfarbe ändern, wenn die Maus eingeht.Ändern Sie die Farbe der einzelnen Zellen bei Mauseingabe?

Hier ist, wie es geht:

Private Sub myGrid_CellMouseEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles myGrid.CellMouseEnter 
    myGrid.DefaultCellStyle.ForeColor = Color.DarkRed 
End Sub 

Antwort

2

Sie können CellMouseEnter und CellMouseLeave und erste Überprüfung behandeln, wenn die Zelle nicht eine Header-Zelle ist, dann setzt Vordergrund Farbe des Stils der Zelle auf die gewünschte Farbe:

Private Sub myGrid_CellMouseEnter(sender As Object, e As DataGridViewCellEventArgs) _ 
    Handles myGrid.CellMouseEnter 
    If (e.ColumnIndex < 0 OrElse e.RowIndex < 0) Then Return 
    Dim cell = myGrid.Rows(e.RowIndex).Cells(e.ColumnIndex) 
    cell.Style.ForeColor = Color.Red 
End Sub 

Private Sub myGrid_CellMouseLeave(sender As Object, e As DataGridViewCellEventArgs) _ 
    Handles myGrid.CellMouseLeave 
    If (e.ColumnIndex < 0 OrElse e.RowIndex < 0) Then Return 
    Dim cell = myGrid.Rows(e.RowIndex).Cells(e.ColumnIndex) 
    cell.Style.ForeColor = Color.Black 
End Sub 
+0

Ah, schlagen Sie mich durch Sekunden :) Alles, was ich sagen kann, ist +1 und Sie könnten 'OrElse' anstelle von' Or' verwenden. –

+0

Danke für Feedback :) –