Datagridview garder la ligne selectionnée suivant le tri

spifspaf 11 Messages postés samedi 14 juin 2014Date d'inscription 30 juillet 2016 Dernière intervention - 8 juil. 2016 à 13:16 - Dernière réponse : vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention
- 9 juil. 2016 à 13:36
Bonjour à tous ,

je n'arrive pas à trouver comment maintenir la ligne sélectionée dans un datagridview au moment du tri ( descendant ou ascendant ) dans le header.
si l'un de vous à la solution ou éventuellement une piste, ça serait bienvenue :)

je sais repostionner la ligne


Dim ResultLigneSelect As String
ResultLigneSelect = Label5.Text
DataGridView1.Rows(ResultLigneSelect).Selected = True

Me.DataGridView1.CurrentCell = Me.DataGridView1.Rows(ResultLigneSelect).Cells(1)


mais je ne trouve pas comment la maintenir en utilisant le tri de colonne :(

Merci par avance
Afficher la suite 

Votre réponse

5 réponses

vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention - Modifié par vb95 le 9/07/2016 à 11:28
0
Utile
bonjour
Sous quel VB programmes-tu ? Je pense VBNet mais tu as posté dans la section générale de Visual Basic

si tu programmes en VB NET la méthode Sort de la DataGridview ne garde pas la cellule sélectionnée avant le tri . La seule piste serait que tu programmes toi-même ta propre routine de tri en y incluant le déplacement de la cellule sélectionnée si nécessaire

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 9 juil. 2016 à 11:51
Bonjour, vb95,
Si en VB, ce ne peut être qu'en VB.Net (pas de datagridview dans les autres).
Je ne comprends par ailleurs pourquoi un tri n'est pas fait à priori, plutôt qu'à postériori.
Je ne comprends pas non plus l'intérêt d'utiliser un tel contrôle sans liaison à un recordset d'une base de données (et le tri est alors à faire dans la requête de liaison)
vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention > ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 9 juil. 2016 à 12:23
Bonjour Uc
A mon avis notre ami sélectionne une cellule dans sa DataGridView ( supposons une liste de prénoms dans l'ordre alphabétique croissant)
S'il change le tri en ordre alphabétique décroissant il veut garder sélectionnée la même cellule
Pour la liaison à une base de données notre ami ne nous en dit rien

Si c'est un tri classique (alphabétique, numérique ou chronologique) il y aurait une solution : si tu sélectionnes la cellule N ( N variant de 0 à NombreLignes - 1) une fois le tri fait dans l'autre sens la cellule sélectionnée est la cellule NombreLignes - (N + 1)
Exemple

Croissant----Décroissant
0---------------------6
1---------------------5
2---------------------4
3---------------------3
4---------------------2
5---------------------1
6---------------------0

Si je sélectionnes le 2 dans la ligne de la liste croissante je le retrouve en 7 - (2+1) = 4 dans le liste décroissante soit NombreLignes - (Sélection + 1)
Attention la première ligne est toujours la ligne 0
Commenter la réponse de vb95
spifspaf 11 Messages postés samedi 14 juin 2014Date d'inscription 30 juillet 2016 Dernière intervention - 9 juil. 2016 à 13:09
0
Utile
Bonjour et merci pour vos réponses il est vrai que cela manque de précisons de ma part.
pour le programme c'est du vb.net il me semble ( je suis novice :( ) j'utilise visual studio 2013 et mes sont des .vb
Au niveau du datagrid ben j'affiche les resultats à partir d'une base de données MySql.
Et au niveau du tri ben c'est celui du datagrid j'ai rien modifié ( pas créé de sytéme de tri personnalisé )
Le but étant de garder celui de base et de simplement maintenir la ligne que j'ai selectionnée au départ ( pas de tri suivant la selection, mais simplement ascendant ou descendant comme le fait de base le datagrid )
vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention - 9 juil. 2016 à 13:36
Tu as la réponse à ton problème dans mon dernier message
Commenter la réponse de spifspaf

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.