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

VB.NET Discussion :

ListView - Migration VB6 à VB.Net [Débutant]


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut ListView - Migration VB6 à VB.Net
    Voila, j'ai récupérer un bout de code VB6 et je le transforme en VB.Net

    J'ai résolu tous les petits souci hormis 2.

    Le premiers concerne la listview qui est présente dans la form.

    voici le programme VB6 (a savoir que la ListView s’appelle : LstTemps)

    En rouge : les érreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Public Function ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            On Error Resume Next
            Dim itmx As ListItems
            itmx = LstView.ListItems
            itmx.Item(itmx.Count).SubItems(Key) = Entree
        End Function
    Cette Function se trouve dans un Module.

    Je n'arrive pas à modifier... si quelqu'un à une idée !!!!

    Merci beaucoup

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,

    avec une petite recherche google sur listview windows forms vous trouvez les liens MSDN :
    ListView Control (Windows Forms)
    ListView Class
    En regardant les exemples, on peut voir la propriété Items qui vous intéresse
    Et en plus c'est bourré d'exemples

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Justement, j'ai déjà regardé la.

    Cela m'a permit de convertir une autre partie du code de la ListView mais pas sur cette partie la

    Ps : Mise à jour du premier post

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Justement, je vous aiguille vers la propriété Items qui remplace votre ListItems, qu'est-ce que vous ne comprenez pas la dedans?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Déjà, j'arrive pas trop a comprendre, avec cette "function" ce que le mec à voulu faire !!!!

    Voici ce que j'ai tenté de faire

    erreur en rouge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            On Error Resume Next
            Dim itmx As items
            itmx = LstView.Items
            itmx.Item(itmx.Count).SubItems(Key) = Entree
    End Function

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Quand vous allez sur la page MSDN de la propriété Items : http://msdn.microsoft.com/en-us/libr...iew.items.aspx

    Vous voyez que Items est en réalité de Type: System.Windows.Forms.ListView.ListViewItemCollection

    Donc on pourrait déjà se dire de modifier le code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Sub ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            Dim itmx As ListView.ListViewItemCollection
            itmx = LstView.Items
            itmx.Item(itmx.Count).SubItems(Key) = Entree
    End Function
    Mais ceci n'a pas beaucoup de sens, il suffit de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            LstView.Items.Item(LstView.Items.Count).SubItems(Key) = Entree
    End Function
    Que l'on peut encore simplifier comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            LstView.Items(LstView.Items.Count).SubItems(Key)  = Entree
    End Function
    Mais il reste une erreur sur = Entree. En regardant ce que SubItems accepte, on voit que c'est un ListViewSubItem, donc on modifie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Public Function ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            LstView.Items(LstView.Items.Count).SubItems(Key) = New ListViewItem.ListViewSubItem(LstView.Items(LstView.Items.Count), Entree)
        End Function
    Et enfin une fonction n'a pas de sens si elle ne retourne rien donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Public Sub ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            LstView.Items(LstView.Items.Count).SubItems(Key) = New ListViewItem.ListViewSubItem(LstView.Items(LstView.Items.Count), Entree)
        End Sub
    Je n'ai jamais employé de ListView et avec l'aide de MSDN et de l'intellisens de VS on trouve rapidement la solution...

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    En gros tu me dit que pour migrer de VB6 à VB.Net, il ne faut pas que je traduise mot par mot mais plutôt la fonction dans sa globalité.

    Je vais tester ceci ce soir, et je te dirais ce qu'il en est.

    Tu sais, j'ai apprit la programmation tout seul, et j'apprend encore. Et même si je commence à me debrouiller, j'ai pas mal de lacune.

    En tout cas, je te remercie. Si cela fonctionne, il ne me restera qu'une erreur de "Byval" à corriger pour terminer la migration de VB6 à VBnet.


  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par kitcarflo Voir le message
    Tu sais, j'ai apprit la programmation tout seul, et j'apprend encore. Et même si je commence à me debrouiller, j'ai pas mal de lacune.
    Je n'ai jamais critiqué, tout le monde passe par la case débutant, je cherche juste à ce que tu puisses apprendre à trouver par toi même.
    J'essaye toujours de donner de bons indices pour débloquer les discussions sans non plus donner la réponse toute faite car comme le dit le dicton :
    Donne un poisson à un homme, il mangera un jour, apprend lui à pêcher, il mangera toute sa vie


  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Donne un poisson à un homme, il mangera un jour, apprend lui à pêcher, il mangera toute sa vie

    J'adore ta phrase.

    J'avais pas mal débuter en remplaçant le "ListItems" par "ListViewItemCollection" mais je me suis arrêter derrière.

    Pour info, par cette procédure le mec cherchais à faire quoi ?

  10. #10
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    A première vue, la procédure change le subitem d'index Key du dernier item de la listview.
    Mais comme je l'ai dit plus haut, je n'ai jamais employé de ListView donc je ne visualise pas du tout le comportement de ce composant.

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,
    Il aurait été intéresssant de nous préciser la valeur propriété View. Vu le code A priori c'est "Details".

    Citation Envoyé par Sankasssss Voir le message
    A première vue, la procédure change le subitem d'index Key du dernier item de la listview.
    ...
    Exact. A mon avis, sur un ListView en mode "Details", cela change le texte de la colonne d'index Key de la dernière ligne.


    Citation Envoyé par Sankasssss Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Public Sub ViewTimes(ByVal LstView As ListView, ByVal Entree As String, ByVal Key As Integer)
            LstView.Items(LstView.Items.Count).SubItems(Key) = New ListViewItem.ListViewSubItem(LstView.Items(LstView.Items.Count), Entree)
        End Sub
    Ne connaissant pas le composant, Bravo pour la déduction.
    Mais j'aurais mis "LstView.Items.Count - 1"


    Et il me semble que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        LstView.Items(LstView.Items.Count - 1).SubItems(Key).Text = Entree
    fait la même chose. Change le texte de la colonne d'index Key de la dernière ligne (a tester)
    Note : .Item étant pris comme propriété par défaut.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  12. #12
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Mais j'aurais mis "LstView.Items.Count - 1"

    Et il me semble que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        LstView.Items(LstView.Items.Count - 1).SubItems(Key).Text = Entree
    fait la même chose. Change le texte de la colonne d'index Key de la dernière ligne (a tester)
    Note : .Item étant pris comme propriété par défaut.

    A+, Hervé.

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Vous me laissez sur le cul les mecs.

    Je prend la tasse moi...

    En tout cas, la proposition de "Sankasssss" fonctionne. Je n'ai plus d'erreur pour le moment.

    Je n'ai pas lancé le programme car j'ai encore une erreur de conversion d'une variable "ByVal" dans un "ReadProcessMemory" mais j’essaie de chercher encore un peu avant de venir vous embêtez.

  14. #14
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par kitcarflo Voir le message
    En tout cas, la proposition de "Sankasssss" fonctionne. Je n'ai plus d'erreur pour le moment.
    Tu n'auras plus d'erreur de compilation (en codant) mais si tu laisses ce que je t'ai donné, tu auras une erreur à l’exécution de type : index out of range exception

    Donc mets le code donné par rv26t, en particulier le -1

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Oki, j'ai remplacé par le code de rv26t

    Je vous tiens au courant pour le programme si il tourne ou pas.

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

Discussions similaires

  1. Migration VB6 -> VB.net quelques difficultés
    Par megamario dans le forum VB.NET
    Réponses: 11
    Dernier message: 15/02/2013, 18h37
  2. Migration VB6/VB.NET + frameworks
    Par florentino dans le forum VB.NET
    Réponses: 8
    Dernier message: 16/10/2008, 14h16
  3. [VB6 > VB.Net] Comment réussir la migration pour utilisation sous VS2003 ?
    Par sympatique dans le forum Accès aux données
    Réponses: 3
    Dernier message: 15/08/2006, 21h32
  4. [VB.NET 1.1] Migration VB6
    Par neuropathie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/07/2006, 14h39
  5. [VB.NET] Migration VB6---VB.NET
    Par billyyy dans le forum Windows Forms
    Réponses: 6
    Dernier message: 07/01/2005, 15h30

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