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

Résolu
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 23 nov. 2006 à 22:51
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 25 nov. 2006 à 11:44
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

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 nov. 2006 à 01:01
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"
<!--
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 nov. 2006 à 15:06
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>
3
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 1
24 nov. 2006 à 12:04
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
 
0
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 1
25 nov. 2006 à 11:44
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
 
0
Rejoignez-nous