Compter les item d'une listview

Résolu
mylord666 Messages postés 162 Statut Membre -  
mylord666 Messages postés 162 Statut Membre -
Bonjour,

bon tout fonctionne bien maintenant reste un autre problème et là je rame un max
comment identifier un items d'une colonne et afficher la ligne de cet item, et ensuite je voudrais en faire la somme des items identifies
merci d'avance

6 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Pas de souci

    voici un exemple:

    http://www.cjoint.com/data3/3BBiCgapMIF.htm

    Bonne programmation
    0
    1. mylord666 Messages postés 162 Statut Membre
       
      bonjour je suis désolé j'arrive pas à trouver ce dossier quand je clique dessus c'est un autre dossier qui apparait
      encore merci de ton aide siprecieuse
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Je viens de télécharger le fichier c'est le bon dossier;
      C'est un fichier zip, il faut le dezipper pour avoir le dossier.
      0
      1. mylord666 Messages postés 162 Statut Membre > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        je viens de ressayer ca me répond qu'il a ete fait avec un logiciel plus récent que le mien impossible a ouvrir suis vraiment désolé et surement novice
        0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    C'est normal j'utilise VB2010:
    Ouvrir un nouveau projet, mettre une listview et 4 boutons
    3 TextBox nommés:
    Textnom
    Textprenom
    Textnaissance
    un label nommé:
    Label4

    Ajouter un nouveau Form
    Form2 avec une listview

    Voici le code à mettre dans le Form1:

    Imports System.IO
    Public Class Form1
        Dim bf As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
        Dim ligne As Integer
        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
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "Ajouter item"
            Button2.Text = "Supprimer item"
            Button3.Text = "Ouvrir Form2"
            Button4.Text = "Enregistrer données"
            Label4.Text = "Items cochés"
            'Le ListView1 existe
            ListView1.View = View.Details
            ListView1.CheckBoxes = True
            ListView1.Columns.Add("Nom", 80, HorizontalAlignment.Left)
            ListView1.Columns.Add("Prénom", 80, HorizontalAlignment.Left)
            ListView1.Columns.Add("Année naissance", 100, HorizontalAlignment.Left)
            Try
                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
            Catch
            End Try
        End Sub
        'ajoute item
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            If Textnom.Text = "" Or Textprenom.Text = "" Or Textnaissance.Text = "" Then Exit Sub
            Dim MyLine As ListViewItem = New ListViewItem(New String() {Textnom.Text, Textprenom.Text, Textnaissance.Text})
            ListView1.Items.Add(MyLine)
        End Sub
        'supprime item
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            If ListView1.SelectedItems.Count > 0 Then
                ListView1.Items.RemoveAt(ligne)
            End If
        End Sub
        'selection ligne
        Private Sub ListView1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListView1.SelectedIndexChanged
            If ListView1.SelectedItems.Count > 0 Then
                ligne = ListView1.SelectedItems(0).Index
            End If
        End Sub
        'checke par item
        Private Sub ListView1_ItemChecked(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckedEventArgs) Handles ListView1.ItemChecked
            If ListView1.Items.Count > 0 Then ' si listview1 non vide
                For j = 0 To ListView1.Items.Count - 1
                    ' colore suivant case cochée par item
                    ListView1.Items(j).ForeColor = IIf(ListView1.Items(j).Checked = False, Color.Black, Color.Red)
                Next j
                Label4.Text = ListView1.CheckedItems.Count & " sélectionné" & IIf(ListView1.CheckedItems.Count > 1, "s", "") 'compte les fichiers selectionnés
            End If
        End Sub
        'ouvrir Form2
        Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
            Form2.ShowDialog()
        End Sub
        'enregistrer données
        Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
            Using fs As New System.IO.FileStream("sauvegarde.txt", IO.FileMode.Create)
                bf.Serialize(fs, New ArrayList(ListView1.Items))
            End Using
        End Sub
    End Class
    


    Et dans le Form2:

    Imports System.IO
    Public Class Form2
        Dim bf As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
        Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            'Le ListView1 existe
            ListView1.View = View.Details
            ListView1.CheckBoxes = True
            ListView1.Columns.Add("Nom", 80, HorizontalAlignment.Left)
            ListView1.Columns.Add("Prénom", 80, HorizontalAlignment.Left)
            ListView1.Columns.Add("Année naissance", 100, HorizontalAlignment.Left)
            ListView1.Items.Clear()
            Try
                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
            Catch
            End Try
        End Sub
    End Class


    En suivant ces instructions, ça devrait fonctionner!
    0
    1. mylord666 Messages postés 162 Statut Membre
       
      merci beaucoup de ta patience envers moi je vais le tester de suite
      0
    2. mylord666 Messages postés 162 Statut Membre
       
      cela fonctionne très bien merci encore je vais avancer dans mon programme un peu complique mais cela fait marcher les neurones merci de ta patience.
      je voudrais copier seulement la ligne sélectionnée dans la listview2 comment dois faire
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Mettre dans le Form2 un bouton avec ce code:

     
    Dim ligne As Integer
     'selection ligne
        Private Sub ListView1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListView1.SelectedIndexChanged
            If ListView1.SelectedItems.Count > 0 Then
                ligne = ListView1.SelectedItems(0).Index
            End If
        End Sub
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            MsgBox(ListView1.Items(ligne).Text)
            MsgBox(ListView1.Items(ligne).SubItems(1).Text)
            MsgBox(ListView1.Items(ligne).SubItems(2).Text)
        End Sub


    tu mets des variables à la place des MsgBox et ensuite tu fais ce que tu veux

    Voilà
    0
    1. mylord666 Messages postés 162 Statut Membre
       
      merci encore de ton aide j'ai copie ce code mais juste un petit soucis j'ai une erreur ""ligne n'est pas déclarée comment faire pour réparer je sais pas le faire désolé encore
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Tu n'as pas tout recopié!!!

      Et ça c'est quoi:

      Dim ligne As Integer

      Il faut le mettre avec tes autres déclarations
      0
    3. mylord666 Messages postés 162 Statut Membre
       
      oui j'ai tout recopié et cela fonctionne bien c'est en copiant qu'une erreur c'était produite merci encore cela me permet d'avancer un peu plus bonne journée
      0
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Si tu veux avancer en VB.NET, li faut apprendre les fondamentaux. Déclarations des variables etc.
      Voir ceci:

      https://plasserre.developpez.com/cours/vb-net/?page=langage-vb2#LV-D

      Faire des copier-coller ne te fera pas avancer au contraire, il faut comprendre ce que tu fait. C'est en suivant ces conseils que tu pourras aller plus loin.
      J'ai commencé la programmation à 60 ans, tu vois tout n'est pas perdu, il suffit de s'y mettre.

      @+ Le Pivert
      0
      1. mylord666 Messages postés 162 Statut Membre > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        bonjour merci de te conseils j'ai 65ans voila j'avance doucement par contre je viens de récupérer un nouveau pc en vista bien sur 64 bits impossible de charger vb2010 j'ai le message mettre a jour pack 1 il est bien installe que faire tu peux m'éclairer merci d'avance
        0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voilà un exemple en VB2008:

    http://www.cjoint.com/data3/3Ccpjse2gAK.htm
    0
    1. mylord666 Messages postés 162 Statut Membre
       
      merci de ton aide j'ai réussi a charger vb2010 ça marche bien voila prêt pour aller plus loin merci encore
      0