Positionner le curseur sur une ligne précise d'un datagridview

Résolu
Signaler
Messages postés
85
Date d'inscription
lundi 25 septembre 2006
Statut
Membre
Dernière intervention
18 décembre 2008
-
Messages postés
85
Date d'inscription
lundi 25 septembre 2006
Statut
Membre
Dernière intervention
18 décembre 2008
-
Bonsoir à tous,

Voici mon problème.
Je recherche une occurence (le nom du client) dans un datagridview.
Je trouve l'occurence... je mets la ligne en surbrillance... mais je n'arrive pas à faire positionner le focus directement sur cette ligne.

Le problème est que lorsque la ligne trouvée n'est pas visible à l'écran (parce que le datagridview liste quelque 2500 lignes), je n'arrive pas à me positionner directement sur la ligne trouvée... et pourtant elle est trouvée et passé en surbrillance.

Quelqu'un à t'il une petite idée pour moi ? merci d'avance.

Dim I As Integer = 0 'variable de boucle
        Dim Achercher As String = TB_rechercher.Text ' le nom à chercher dans la liste
        ' la boucle recherche si l'occurence est trouvée dans la cellule 3 du datagridview
        ' si l'occurence est trouvée alors la ligne est sélectionnée et s'affiche en surbrillance
        ' la variable numvisucli récupère l'ID du client de manière à ouvrir la fiche détaillée dans un form

        For I = 0 To compteur
            If DataGridView1.Rows(I).Cells(3).Value = Achercher Then _            numvisucli DataGridView1.Rows(I).Cells(0).Value : DataGridView1.Rows(I).Selected True _
           : TB_rechercher.ResetText() : TB_rechercher.Refresh() : Exit Sub
        Next
        TB_rechercher.ResetText() : TB_rechercher.Refresh() : MsgBox("occurence non trouvée")
        TB_rechercher.Focus()

Je vous remercie les pros...

Philippe - Sympa 74
 

4 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

T'as pas .Select(index) en dotnet ?
Sinon, après le .Focus(), simule un appuie de la touche bas, puis haut.

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Beh je suis pas en dot net, mais vois si t'as l'évènement KeyDown de l'objet datagridview.
En vb6, les connstantes : vbKeyDown et vbKeyUp

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
85
Date d'inscription
lundi 25 septembre 2006
Statut
Membre
Dernière intervention
18 décembre 2008

Bonjour,

si j'ajoute DataGridView1.Select() dans le code, il ne se passe rien de plus,
si j'ajoute DataGridView1.Select(I), j'ai une erreur "la résolution de surcharge a échoué car aucun select accessible n'accepte ce nombre d'arguments.

Pour la solution ... simule un appuie de la touche bas... je ne vois pas comment faire.... (aie-je oublié de préciser que je suis tout débutant... débutant ? )

merci d'avance pour ton aide

Philippe - Sympa 74
 
Messages postés
85
Date d'inscription
lundi 25 septembre 2006
Statut
Membre
Dernière intervention
18 décembre 2008

Hello,

j'ai obtenu la réponse sur un autre forum et ca fonctionne.
je mets l'info ici... si cela intéresse quelqu'un...

au code que j'ai écrit, il suffit simplement de rajouter :

DataGridView1.FirstDisplayedScrollingRowIndex = I

et le curseur se positionne directement sur l'occurence trouvée.

Philippe - Sympa 74