Sélection automatique d'une ligne dans une msflexgrid

Résolu
cs_Axen Messages postés 49 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 24 mars 2010 - 23 oct. 2007 à 17:42
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 24 oct. 2007 à 11:36
Bonjour,

je souhaiterais pouvoir sélectionner une ligne (unique) dans ma flexgrid de façon automatique, en rapport avec ma playlist windows media player, la flexgrid est en fait un affichage de la playlist.

Voila un bout de code pour avoir une meilleure idée :

Private Sub TimerCompteur_Timer()
Dim Pl As IWMPPlaylist
Dim j As Integer, i As Integer
Dim Cible As String


FrmPlayer.LblCompteur.Caption = FrmPlayer.wmp.Controls.currentPositionString
'recupere le nom du média en cours
Cible = FrmPlayer.wmp.Controls.currentItem.Name
'recupere la playlist actuelle dans Pl
Set Pl = FrmPlayer.wmp.currentPlaylist
j = Pl.Count
For i = 0 To j - 1
'compare le nom média avec le nom de la playlist pour récupérer son index
    If Cible = Pl.Item(i).Name Then
        'sélectionne la ligne correspondant à l'index de la playlist
        FrmPlaylist.FlexPlaylist.RowSel = i
    Exit For
End If
Next i
End Sub

Le problème qui se pose avec cette méthode, c'est que l'ancienne ligne reste sélectionnée. Comme si je fesais un multiselect avec la touche shift. Donc a la lecture du premier media, pas de souci mais au second, 2 lignes sont sélectionnées et ainsi dessuite !

La seule réponse que j'ai pu trouver, c'est un code du style (résultat encore pire) :

Private Sub FlexPlaylist_SelChange()
frmplaylist.FlexPlaylist.RowSel = frmplaylist.FlexPlaylist.Row
End Sub

je n'ai plus qu'une ligne sélectionnée mais l'ancienne

Merci de m'éclairer de vos lumières !

4 réponses

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
23 oct. 2007 à 18:11
Bonjour
Par exemple :

Private Sub Command1_Click()
 MSFlexGrid1.Row = 6
 MSFlexGrid1.RowSel = 7
 MsgBox "regarde"
 MSFlexGrid1.Row = 5
 MSFlexGrid1.RowSel = 6
 MsgBox "regarde maintenant"
End Sub
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
24 oct. 2007 à 03:07
Salut JMF, je te trouve pas mal zen ...

MPi²
0
cs_Axen Messages postés 49 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 24 mars 2010
24 oct. 2007 à 10:06
Salut et merci beaucoup jmf.

Pourquoi tu le trouve pas mal zen MPi ? J'ai mal expliqué ?
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
24 oct. 2007 à 11:36
Salut Axen,
non, rien à voir avec ton explication ... qui, comme la réponse de JMF, étaient claires.
désolé pour l'intrusion.

MPi²
0