Positionner le curseur sur une ligne précise d'un datagridview [Résolu]

Sympa74 85 Messages postés lundi 25 septembre 2006Date d'inscription 18 décembre 2008 Dernière intervention - 23 nov. 2006 à 22:51 - Dernière réponse : Sympa74 85 Messages postés lundi 25 septembre 2006Date d'inscription 18 décembre 2008 Dernière intervention
- 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
 
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 24 nov. 2006 à 01:01
3
Merci
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"
<!--

Merci mortalino 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de mortalino
Meilleure réponse
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 24 nov. 2006 à 15:06
3
Merci
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>

Merci mortalino 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de mortalino
Sympa74 85 Messages postés lundi 25 septembre 2006Date d'inscription 18 décembre 2008 Dernière intervention - 24 nov. 2006 à 12:04
0
Merci
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
 
Commenter la réponse de Sympa74
Sympa74 85 Messages postés lundi 25 septembre 2006Date d'inscription 18 décembre 2008 Dernière intervention - 25 nov. 2006 à 11:44
0
Merci
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
 
Commenter la réponse de Sympa74

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.