Encore une petite question sur listview [Résolu]

Signaler
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
Voilà je sais que pour afficher le bas de ma list view il faut que je sélectionnes le dernier item de ta liste et que je met la propriété FullRowSleect à true, en tout cas si je ne m'abuse, problème je vois pas trop trop comment selectionner le dernier item
j'ai pensé a ListView1.SelectedItem, mais je ne sais pas quoi placer après pour qu'il sélectionne la dernière ligne en date, de plus je ne sais pas comment faire pour que ma listview ce mette correctement a jour lords d'une supression ou lord d'un ajout de ligne ...
Merci de bien vouloir prendre le temps de me repondre ...

RE voilà mon ptit bout de code :

Public i As Integer
Public j As Integer

Private Sub Command2_Click()
    If ListView1.ListItems.Count >= 20 Then
        ListView1.ListItems.Remove (1)
        j = j + 1
    End If
    ListView1.ListItems.Add = "j'en suis a la ligne" & i
    i = i + 1
End Sub

Private Sub Command3_Click()
    If ListView1.ListItems.Count = 0 Then
        MsgBox _
          ("Erreur, vous ne pouvez plus supprimer de ligne dans cette liste !!")
    Else
        ListView1.ListItems.Remove (i - j)
        i = i - 1
    End If
End Sub

Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
    Listview1.SelectedItem.
End Sub, ----
(Coloration syntaxique automatique par Kenji)

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe

13 réponses

Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

C'est presque ca !!

La solution est :

Public i As Integer
Public j As Integer

Private Sub Command2_Click()
    If ListView1.ListItems.Count >= 20 Then
        ListView1.ListItems.Remove (1)
        j = j + 1
    End If
    ListView1.ListItems.Add = "j'en suis a la ligne" & Format(i, "000")
    i = i + 1
    ListView1.ListItems(i).Selected = True
    ListView1.ListItems(i).EnsureVisible
End Sub

Private Sub Command3_Click()
Dim p As Integer
p = (i - j)
    If ListView1.ListItems.Count = 0 Then
        MsgBox _
          ("Erreur, vous ne pouvez plus supprimer de ligne dans cette liste !!")
    Else
        ListView1.ListItems.Remove p
        i = i - 1
        ListView1.ListItems(i).Selected = True
        ListView1.ListItems(i).EnsureVisible
    End If
End Sub, ----
(Coloration syntaxique automatique par Kenji)

Merci à vous tous pour votre aide !!

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Essaie peut être
ListView1.ListItems(ListView1.ListItems.Count).Selected = True

je sais que le listview possède aussi une méthode appelé ListView1.SelectedItem.EnsureVisible

Qui te permet de t'assurer que l'items selectionné est bien visible
Voila j'espère que cela t'aide un peu

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

J'ai test les 2 aucun ne marche mais peut être est ce aussi parce que je ne place pas le bout de code au bonne endroit, ...

Private Sub ListView1_BeforeLabelEdit
(Cancel As Integer)
    Listview1.ListItems(ListView1.ListItems.Count).Selected = True
End Sub

OU

Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
    Listview1.SelectedItem.EnsureVisible = True
End Sub

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut et Salut Jrivet,

Avant de faire la sélection, donne le focus à ta listview :

Listview1.SetFocus
Listview1.ListItems
(ListView1.ListItems.Count).Selected = True

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

En fait je ne veut pas selectionner le dernier item, je veut just qu'il soit tjs visible ...

je voudrais bien vous montrer une image mais j'arrive pas l'inseré :(

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

En fait je croi que ce serai plus facile de forcé la scrollbar verticale, en bas ... non ??

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Re,
Ce qu'il faut savoir c'est a QUEL MOMENT tu souhaitres effectuer cette action. les deux lignes de code que je te proposais fonctionne.

Sais tu au moins a quel moment survient l'événement  ListView1_BeforeLabelEdit


@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Bah non justement c'est pour ca que j'avais aussi demandé, que l'on me dise si je le placé au bonne endroit, pour que les mise a jour ce fasse correctement selon que j'ajouté et supprimé une ligne ...

En plus j'ai remarqué un autre problèmez dans mon code, c'est que lorsque j'arrive a la création de la 10ème lignes, elle se place sur la première et non a la suite ... :-/

Je refile mon code un pe modifié ... :

Public i As Integer
Public j As Integer

Private Sub Command1_Click()
    ListView1.ListItems.Item(ListView1.ListItems.Count).Selected = True
End Sub

Private Sub Command2_Click()
    If ListView1.ListItems.Count >= 5 Then
        ListView1.ListItems.Remove (1)
        j = j + 1
    End If
    ListView1.ListItems.Add = "j'en suis a la ligne" & i
    i = i + 1
End Sub

Private Sub Command3_Click()
Dim p As Integer
p = (i - j)
    If ListView1.ListItems.Count = 0 Then
        MsgBox _
          ("Erreur, vous ne pouvez plus supprimer de ligne dans cette liste !!")
    Else
        ListView1.ListItems.Remove p
        i = i - 1
    End If
End Sub

Private Sub Form_Load()
i = 1
j = 0
End Sub, ----
(Coloration syntaxique automatique par Kenji)

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

C'est cool pour le problème de tri j'ai trouver, j'ai changer j'ai mis
Private Sub Command2_Click()
    If ListView1.ListItems.Count >= 5 Then
        ListView1.ListItems.Remove (1)
        j = j + 1
    End If
    ListView1.ListItems.Add = "j'en suis a la ligne" & format(i, "000")
    i = i + 1
End Sub

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut ,
Pour selectionner une ligne et la rendre visible

Private Sub Command2_Click()
    If ListView1.ListItems.Count >= 5 Then
        ListView1.ListItems.Remove (1)
        j = j + 1
    End If
    ListView1.ListItems.Add = "j'en suis a la ligne" & i
    i = i + 1
   ListView1.ListItems(i).Selected =ListView1.ListItems(i).EnsureVisible

End Sub

Private Sub Command3_Click()
Dim p As Integer
p = (i - j)
    If ListView1.ListItems.Count = 0 Then
        MsgBox _
          ("Erreur, vous ne pouvez plus supprimer de ligne dans cette liste !!")
    Else
        ListView1.ListItems.Remove p
        i = i - 1
       ListView1.ListItems(i).Selected =ListView1.ListItems(i).EnsureVisible
End If
End Sub















<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
c' est toujours ça !

la ligne que je t' ai proposé combine  les deux .

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

OUI mais j'ai test ton truc et ca marché pas, alors que ca OUI !!
Mais je te remercie, c'est en partie grâce a toi tkt !!

mais le script que j'ai mis la a tjs des ptit bug, mais plus par rapport a la séléction ^^
donc je VOUS remercie TOUS !!

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

MerZi ... Zi ... Zi ... PtitCat  



P.S:

DSL pour l'orthographe