Datagridview garder la ligne selectionnée suivant le tri

spifspaf Messages postés 25 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 26 avril 2021 - 8 juil. 2016 à 13:16
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 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

2 réponses

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié par vb95 le 9/07/2016 à 11:28
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. 
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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)
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018
Modifié par vb95 le 9/07/2016 à 12:28
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
0
spifspaf Messages postés 25 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 26 avril 2021
9 juil. 2016 à 13:09
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 )
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
9 juil. 2016 à 13:36
Tu as la réponse à ton problème dans mon dernier message
0
Rejoignez-nous