Listview comment trouver la derniere ligne

Résolu
mylord666 Messages postés 162 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour
j'avance doucement sur ce thème et là big soucis
je voudrais charger un lisview par programme de façon a jouter une nouvelle ligne
je n'arrive pas à trouver le code pour la repérer qui peu m'aider merci d'avance

6 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Dans le site que je t'ai donné tu as tous les renseignements.
    Fais moi le plaisir de le consulter stp!
    Cela te fera gagner du temps!

    'Autre syntaxe
     Dim MyLine As ListViewItem= New ListViewItem( New String() {"Lasserre","Philippe", "1951"})
     ListView1.Items.Add (MyLine)
    

    0
    1. mylord666 Messages postés 162 Statut Membre
       
      je n'avais compris ce chapitre excuse moi
      0
    2. mylord666 Messages postés 162 Statut Membre
       
      je viens d'essayer ton code cela fonctionne mais quand je veux ajouter une autre ligne cela écrit toujours sur la même ligne je trouve pas dans le dossier que tu m'as indiqué tu peux m'aiguiller merci d'avance
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Je ne comprends pas, l'exemple qui est donné fonctionne très bien. A chaque fois que tu cliques sur le bouton une nouvelle ligne est ajoutée:

    Public Class Form1
      Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            'Le ListView1 existe
            ListView1.View = View.Details
    
            ListView1.Columns.Add("Nom", 60, HorizontalAlignment.Left)
            ListView1.Columns.Add("Prénom", 60, HorizontalAlignment.Left)
            ListView1.Columns.Add("Année naissance", 60, HorizontalAlignment.Left)
        End Sub
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim MyLine As ListViewItem = New ListViewItem(New String() {"Lasserre", "Philippe", "1951"})
            ListView1.Items.Add(MyLine)
        End Sub
    End Class
    


    Bien sur il faut changer les données sinon ce sont toujours les mêmes!
    0
    1. mylord666 Messages postés 162 Statut Membre
       
      merci de ton aide précieuse cela répond pas complétement à ma question
      voilà j'ai un form contenant les les données que je renseigne dans des textbox et je voudrais que lorsque je click sur le bouton ajouter cela aille s'inscrire dans l'autre form qui contient le listview et changer de ligne chaque fois que je rentre de nouvelles données je rame complètement$
      excuse moi de mon manque de précision dans mes questions
      hé oui la vieillesse est là
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Pour alimenter ta listView qui se trouve dans un autre Form il faut indiquer le nom du Form. comme ceci par exemple si c'est le Form2

     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim MyLine As ListViewItem = New ListViewItem(New String() {"Lasserre", "Philippe", "1951"})
           Form2.ListView1.Items.Add(MyLine)
        End Sub
    


    A chaque fois que tu cliqueras sur le bouton cela ajoutera un ligne!
    0
    1. mylord666 Messages postés 162 Statut Membre
       
      merci
      je viens de le tester cela fonctionne bien par contre il y a un petit soucis une fois alimenté le listview si je le ferme et que je reouvre tout est effacé comment faire pour le garder fixe là je sais pas faire
      0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    c'est un peu plus compliqué. Tu mets un fichier txt nommé: sauvegarde
    dans le dossier où se trouve ton exe

    Voici le code à mettre dans le Form où se trouve ta listview:

    Déclaration

    Dim bf As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()


    Pour enregistrer à la fermeture:

    a adapter le nom du form

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    Using fs As New System.IO.FileStream("sauvegarde.txt", IO.FileMode.Create)
        bf.Serialize(fs, New ArrayList(ListView1.Items))
    End Using
    End sub


    Pour récupérer à l'ouverture:

    a adapter le nom du form

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadUsing 
    fs As New System.IO.FileStream("sauvegarde.txt", IO.FileMode.Open)
    ListView1.Items.AddRange(bf.Deserialize(fs).ToArray(GetType(ListViewItem)))
    End Using
    End sub

    0
    1. mylord666 Messages postés 162 Statut Membre
       
      je viens de recopier ces codes et j'ai une erreur sur le code de l'ouverture
      sur
      handles MyBase.loadUsing
      j'obtiens l'erreur que ce n'est pas déclaré
      Un GRAND merci pour ta patience envers moi je t'enverrais le programme une fois terminé le sujet calcul des glucides par repas et journalier
      0
    2. mylord666 Messages postés 162 Statut Membre
       
      je reviens de faire un essais la reponse est que LOADUSING est introuvable
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    C'est lors de la copie qu'il y a eu une erreur:

      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      If File.Exists("sauvegarde.txt") Then
                Using fs As New System.IO.FileStream("sauvegarde.txt", IO.FileMode.Open)
                    ListView1.Items.AddRange(bf.Deserialize(fs).ToArray(GetType(ListViewItem)))
                End Using
            End If
        End Sub

    0
    1. mylord666 Messages postés 162 Statut Membre
       
      merci encore de ton aide
      cela fonctionne mais si je veux rouvrir la listvieuw après fermeture je n'obtient que le premier éléments les autre ne sont pas visibles et en plus cela se renseigne bien mais pas a la première ligne il y a un rand espace de lignes libres est ce normal . c'est intéressant mais compliqué cela me fait bien réfléchir et encore merci de ton aide si précieuse
      bonne fin de semaine
      0
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voici un exemple de listview avec sauvegarde. En le faisant je me suis aperçu d'un bug à la 1ére utilisation à l'ouverture. Il faut que tu supprimes à la 1ère ouverture dans l'evenement:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    


    ceci:

     If File.Exists("sauvegarde.txt") Then
                Using fs As New System.IO.FileStream("sauvegarde.txt", IO.FileMode.Open)
                    ListView1.Items.AddRange(bf.Deserialize(fs).ToArray(GetType(ListViewItem)))
                End Using
            End If
    


    car comme le fichier est vide cela crée un bug. Ensuite quand tu as enregistré quelques chose dans le fichier il te suffit de le remettre et là cela fonctionnera. Ceci est valable pour ton projet!

    Voici l'exemple à télécharger tu n'as rien a faire il est fonctionnel lui puisque déjà utilisé par mes soins:

    http://www.cjoint.com/data3/3Bvmu20PSSO.htm
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Fausse manip, nouveau lien:

      http://www.cjoint.com/data3/3BvmHaj4XR9.htm
      0