Datagrid Row en "surbrillance" [Résolu]

AirByte 13 Messages postés mercredi 5 janvier 2011Date d'inscription 25 février 2011 Dernière intervention - 3 févr. 2011 à 03:12 - Dernière réponse : AirByte 13 Messages postés mercredi 5 janvier 2011Date d'inscription 25 février 2011 Dernière intervention
- 3 févr. 2011 à 17:33
Bonjour

J'ai un Datagridview remplis de data issue d'une BD SQL. Les colonnes sont en readonly. J'ajoute une Textboxcolumn pour que l'utilisateur puisse entrer des données.

Ce que je voudrais faire, c'est mettre en "surbrillance" la ligne correspondant a la selection en changeant sa couleur.

Je ne sais pas trop comment faire, j'ai essayé certains trucs du genre

  
Private Sub DGView_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGView.SelectionChanged

            Dim TheRow As Integer
            TheRow = DGView.CurrentCellAddress.Y
            Me.DGView.Rows(TheRow).DefaultCellStyle.BackColor = Color.FromArgb(134, 34, 234)

 End Sub


Le problème avec ceci c'est que dès que je sélectionne autre chose, la "surbrillance" ne s'enlève pas.

Quelqu'un aurait une suggestion?

Merci
Afficher la suite 

1 réponse

Répondre au sujet
AirByte 13 Messages postés mercredi 5 janvier 2011Date d'inscription 25 février 2011 Dernière intervention - 3 févr. 2011 à 17:33
+3
Utile
Ok j'ai fait quelque chose qui me convient:

Private Sub DGView_CellLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGView.CellLeave

        If flagfillup = False Then
            Dim NoOldRow As Integer
            NoOldRow = DGView.CurrentCellAddress.Y
            Me.DGView.Rows(NoOldRow).DefaultCellStyle.BackColor = Color.Empty
        End If

    End Sub

    Private Sub DGView_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGView.SelectionChanged

        If flagfillup = False Then
            Dim NoNewRow As Integer
            NoNewRow = DGView.CurrentCellAddress.Y
            Me.DGView.Rows(NoNewRow).DefaultCellStyle.BackColor = Color.FromArgb(243, 243, 243)
        End If

    End Sub


Le FlagFillUp permet de ne pas appliquer les procédures pendant le remplissage du datagrid par la requête SQL.

Je me suis inspiré d'un document très complet sur les datagridview:

4.1.1 Order of Validation Events
The following identifies the order of validation, enter/leave and begin/end edit events. The EditMode is EditOnEnter.
When moving from cell to cell (in the same row)
1) Cell Leave (old cell)
2) Cell Validating/ed (old cell)
3) Cell EndEdit (old cell)
4) Cell Enter (new cell)
5) Cell BeginEdit (new cell)

When moving from one row to another you get:
1) Cell Leave (old cell), Row leave (old row)
2) Cell Validating/ed (old cell)
3) Cell EndEdit (old cell)
4) Row Validating/ed (old row)
5) Row Enter (new row)
6) Cell Enter (new cell)
7) Cell BeginEdit (new cell)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de AirByte

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.