IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème index dans Listview


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de tenebriox
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 88
    Par défaut Problème index dans Listview
    Bonjour,

    Voila mon code qui pose problème :

    List_ssclefs est une listview, qui affiche les clés présentes dans "software\microsoft\windows\currentversion\uninstall\"
    List_valeurs est une listview qui affiche les valeurs de la clé sélectionnée dans list_ssclefs

    Mon problème est que ce code marche à la première sélection, mais quand je change l’item sélectionné, il y’a une erreur à cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cle = List_ssclefs.SelectedItems(0)
    InvalidArgument=La valeur '0' n'est pas valide pour 'index'. Nom du paramètre : index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
        Public Sub List_ssclefs_ItemSelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles List_ssclefs.ItemSelectionChanged
     
            Dim tab_val() As String
            Dim regkey As RegistryKey
            Dim cle As New ListViewItem
     
            cle = List_ssclefs.SelectedItems(0)
            regkey = Registry.LocalMachine.OpenSubKey("software\microsoft\windows\currentversion\uninstall\" & cle.Text)
            'Ouvre la sous-clef
            tab_val = regkey.GetValueNames()
            For i As Integer = 0 To tab_val.Length - 1
                list_valeurs.Items.Add(New ListViewItem(tab_val(i).ToString))
            Next
     
        End Sub
    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    En fait, quand tu changes l'élément sélectionné, l'évènement ItemSelectionChanged se produit 2 fois :
    - une première fois pour la déselection de l'élément actuel
    - une deuxième fois pour la sélection du nouvel élément

    Donc, la première fois que l'évènement se produit, SelectedItems ne contient aucun élément, et quand tu essaies d'accéder au 1er (index 0), tu as une erreur car il n'y a pas de 1er élément. Il faut que tu vérifies d'abord s'il y a un élément sélectionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        Public Sub List_ssclefs_ItemSelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles List_ssclefs.ItemSelectionChanged
          If List_ssclefs.SelectedItems.Count > 0 Then
            Dim tab_val() As String
            Dim regkey As RegistryKey
            Dim cle As New ListViewItem
     
            cle = List_ssclefs.SelectedItems(0)
            regkey = Registry.LocalMachine.OpenSubKey("software\microsoft\windows\currentversion\uninstall\" & cle.Text)
            'Ouvre la sous-clef
            tab_val = regkey.GetValueNames()
            For i As Integer = 0 To tab_val.Length - 1
                list_valeurs.Items.Add(New ListViewItem(tab_val(i).ToString))
            Next
          End If
        End Sub

  3. #3
    Membre confirmé Avatar de tenebriox
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 88
    Par défaut
    Ok effectivement ça marche très bien maintenant
    Merci beaucoup (:

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème checkbox dans listview
    Par Antri dans le forum ASP.NET
    Réponses: 5
    Dernier message: 04/05/2012, 21h34
  2. problème index dans un tableau
    Par kek's dans le forum VB.NET
    Réponses: 18
    Dernier message: 11/06/2010, 17h31
  3. [AC-2007] Problème index dans formulaire
    Par luminium dans le forum IHM
    Réponses: 4
    Dernier message: 07/04/2010, 03h26
  4. Réponses: 0
    Dernier message: 28/10/2009, 21h29
  5. Soucis d'index dans listview.
    Par azerty53 dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/05/2007, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo