Navigation listview AbsolutePosition

cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012 - 28 avril 2008 à 17:51
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 29 avril 2008 à 10:48
mes cher(e)s ami(e)s

j'ai un problème avec ma listview, j'arrive pas a me déplacé avec ses enregistrement

message erreur impossible d'affecter à une propriété en lecture seule


Private Sub cmdDNext_Click()
If Not rs.EOF Then
rs.MoveNext
If rs.EOF Then Exit Sub
txtNumero.Text = rs("Numéro")
txtNomPatient.Text = rs("Nom")

ListPatients.SelectedItem.Selected(rs.AbsolutePosition) = True

Dim abspos As Integer
ListPatients.SelectedItem.Selected(rs.FindNext) = True
Debug.Print abspos

txtDCurent.Text = "Articolul " & rs.AbsolutePosition + 1 & " din " & rs.RecordCount
End If

End Sub

6 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 avril 2008 à 20:43
Salut,
l' erreur n' a rien avoir avec AbsolutePosition.


ListPatients.ListItems(rs.AbsolutePosition).Selected = ListPatients.ListItems(rs.AbsolutePosition).EnsureVisible

                         
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.     
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 avril 2008 à 20:46
ListPatients.ListItems(rs.AbsolutePosition).Selected =
ListPatients.ListItems(rs.AbsolutePosition).EnsureVisible

j' espère que cette fois c' est plus misible
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 avril 2008 à 20:48
Apparement non!
Cet éditeur commence à me fatiguer avec ces retour de lignes
insensé ..
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
29 avril 2008 à 08:46
euh... c'est lié à l'HTML... longue phrase sans espace = mot => pas de césure
donc ben, il te colle ca sur deux lignes...

bien qu'il vaille mieux utiliser la propriété Key que l'index de l'Item, tu peux faire comme te le suggère LIBRE_MAX :

With ListPatients.ListItems(rs.AbsolutePosition)
.Selected = True
.EnsureVisible
End With
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
29 avril 2008 à 10:36
Bonjour Renfield,
non,
With ListPatients.ListItems(rs.AbsolutePosition)
    .Selected = True
    .EnsureVisible
End With
Provoquera la même erreur.
En effet,
-On peut tester sur l' élément selectionné,
If ListPatients.ListItems(rs.AbsolutePosition).Selected=True Then
-Ou on peut récupèrer l' index de l' élément sélectionné,

Mais on peut pas lui affecter la valeur True pour le sélectionner.
D' ou, 
With ListPatients.ListItems(rs.AbsolutePosition)
    .Selected = .EnsureVisible  
End With

De plus EnsureVisible permet de sélectionner une ligne même si elle n' est pas visible et la fait remonter au bas de la liste.
 
ps: faire attention à AbsolutePosition.
ça sera plutot AbsolutePosition+1
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
29 avril 2008 à 10:48
le AbsolutePosition commence effectivement à 0, alors que la collection d'Items commence à l'index 1.

par contre, je ne suis pas d'accord avec ta démarche concernant le .Selected.

tu ne fais toi même rien d'autre que modifier la valeur de .Selected, lui affectant la valeur renvoyée par EnsureVisible (donc True, si l'opération a fonctionné)

donc pas d'erreur pour nos deux codes, leur résultat est identique...
0