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
2875
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
7 août 2022
- 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
2875
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
7 août 2022
154
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
235
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
2875
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
7 août 2022
154 > 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
2875
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
7 août 2022
154
9 juil. 2016 à 13:36
Tu as la réponse à ton problème dans mon dernier message
0