none
Qui remplace FileListBox et DriveListBox RRS feed

  • Question

  • Pour le développement d'une application, j'ai besoin d'utiliser les anciennes instructions VB6 FileListBox et DriveListBox. Systématiquement VB2010 me signale que ces commandes sont obsolètes. J'ai beau chercher, je n'ai toujours pas trouvé l'équivalence en VB2010. Merci d'avance.
    • Type modifié Aurel Bera mercredi 26 septembre 2012 06:08 Pas de reponse
    • Type modifié Aurel Bera lundi 8 octobre 2012 06:36 Repondu
    mercredi 12 septembre 2012 14:29

Réponses

  • Merci pour ce module. Il correspond à ce que je recherche. Juste une question : comment je vais pour récupérer le nom du fichier choisi afin de l'utiliser par la suite. Par exemple, je veux utiliser un fichier image "Photo.jpg" qui est situé sur le disque "g:\", dans le répertoire "Machin", dans le sous-répertoire "Truc" et dans le sous-sous-répertoire "Bidule". La complexité du module me laisse un peu dubitatif car je ne suis pas un programmeur très doué. Merci d'avance.

    Bonjour,

    Pour récupérer le chemin, il suffit d'utiliser selectedNode.

    code après sélectionné le chemin :

    Private Sub _SelectedPath_Click(sender As System.Object, e As System.EventArgs) Handles _SelectedPath.Click
            If Not Me.selectedNode Is Nothing Then
                MessageBox.Show(Me.selectedNode.Text)
            End If
    End Sub

    Projet : http://dl.free.fr/vO9R0O70B

    Ne craignez rien, ce n'est pas compliqué comme code. Il suffit de le faire propre et robuste à max.

    Si ça vous conviens, merci de valider la réponse.


    Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !


    • Modifié Lyamine dimanche 30 septembre 2012 13:33
    • Marqué comme réponse Aurel Bera lundi 8 octobre 2012 06:37
    dimanche 30 septembre 2012 13:08

Toutes les réponses

  • Je vous remercie de ce conseil. Toutefois, je préfère utiliser FileListBox et DriveListBox qui sont plus facilement programmables et moins complexes.
    mercredi 12 septembre 2012 15:38
  • FileListBox et DriveListBox sont marqués comme obsolètes depuis Visual Studio 2010.

    Depuis VS2010, tout l'espace de nom Compatibility pour la récupération de projets VB6 en VB .NET est marqué comme obsolète.

    Comme indiqué ici (http://msdn.microsoft.com/en-us/library/ee839621(VS.100).aspx), une solution consiste à cibler le Framework 3.5 plutôt que le Framework 4.0 mais c'est dommage.

    NB : même s'ils sont obsolètes, vous pouvez les utiliser mais attention, ils ne marchent qu'avec des machines en 32 bits.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    vendredi 14 septembre 2012 05:36
  • Bonjour,

    avez-vous essayer ceci :

      

    Dim Folder AsNew FolderBrowserDialog() Folder.SelectedPath = "c:\" Folder.ShowDialog() Txt_Repertoire_chemin.Text = Folder.SelectedPath

    cordialement

    Salva

    samedi 15 septembre 2012 12:20
  • Bonjour,

    Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,

    Aurel


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 25 septembre 2012 12:45
  • Bonjour,

    Nous changeons le type de votre question à « Discussion générale » parce que vous n’êtes pas revenu avec les informations sollicitées. Si vous avez plus de temps pour réexaminer la question et fournir plus d'informations, n'hésitez pas à modifier le type du thread à « Question ». Si le problème est résolu, s’il vous plaît partagez la solution avec nous afin que la réponse puisse être trouvée et utilisée par d'autres membres de la communauté ayant des questions similaires.

    Merci !

    Cordialement,

    Aurel


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mercredi 26 septembre 2012 06:09
  • C'est ce que j'avais constaté. Ma demande consistait à ne plus voir s'afficher dans la liste d'erreur les avertissmeents comme obsolètes.
    mercredi 26 septembre 2012 11:37
  • J'en ai testé une partie. Je vais faire le reste prochainement.
    mercredi 26 septembre 2012 11:38
  • Je n'ai pas résolu mon problème et je continue à utiliser ces instructions sans tenir compte des avertissements de la liste d'erreur.
    mercredi 26 septembre 2012 11:38
  • Bonsoir Dédé,

    J'avais fait une application pour analyser interactivité sur mon disque dur (lecture/écriture). Vous pouvez avoir la liste de vos lecteurs grâce au Namespace System.IO et utiliser la classe DriveInfo.

    Exemple visuel :

    Amélioration :


    Code source :

    Imports System.IO
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            _Drivers.DataSource = DriveInfo.GetDrives()
            _Drivers.DisplayMember = "Name" 'Pas obligatoire car la méthode ToString() retourne cette valeur
        End Sub
    
        Private Sub _Drivers_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles _Drivers.SelectedIndexChanged
            If _Drivers.Items.Count > 0 Then
                Dim HDD As DriveInfo = DirectCast(_Drivers.SelectedItem, DriveInfo)
                _LblName.Text = "Nom volume :"
                _LblSize.Text = "Espace total :"
                _LblFreeSize.Text = "Espace total :"
                If Not HDD Is Nothing And HDD.IsReady Then
                    _LblName.Text = String.Format("Nom volume : {0}", HDD.VolumeLabel)
                    _LblSize.Text = String.Format("Espace total : {0}", HDD.TotalSize)
                    _LblFreeSize.Text = String.Format("Espace total : {0}", HDD.TotalFreeSpace)
                    'Parcourir le lecteur
                    _TreeV.Nodes.Clear()
                    For Each dir As DirectoryInfo In HDD.RootDirectory.GetDirectories()
                        _TreeV.Nodes.Add(dir.FullName)
                    Next
                End If
            End If
        End Sub
    
        Private selectedNode As TreeNode 'garder la dernière selection
        Private Sub _TreeV_AfterSelect(sender As System.Object, e As System.Windows.Forms.TreeViewEventArgs) Handles _TreeV.AfterSelect
            If _TreeV.Nodes.Count > 0 Then
                Me.selectedNode = e.Node
            End If
        End Sub
    
        Private Sub _TreeV_DoubleClick(sender As System.Object, e As System.EventArgs) Handles _TreeV.DoubleClick
            If _TreeV.Nodes.Count > 0 Then
                For Each dir As DirectoryInfo In New DirectoryInfo(selectedNode.Text).GetDirectories()
                    selectedNode.Nodes.Add(dir.FullName)
                Next
                Me.selectedNode.Expand()
            End If
        End Sub
    End Class

    Projet : http://dl.free.fr/rYZ3149BG

    Il ne reste plus qu'à améliorer selon vos besoins, bien vérifier que le node est accessible, etc... Faites une librairie de classe contenant des usercontrols pour l'implémenter où vous le souhaitez. Je pense vous avoir mis sur la voie.

    PS : Mon code n'est pas totalement robuste, ce n'est qu'un simple exemple pour vous montrer comment faire.

    Est-ce le cas ? Est-ce que c'est ce que vous souhaitiez ???

     

    Cordialement



    Merci de valider par "Proposer comme réponse" si celle-ci répond a votre demande !


    • Modifié Lyamine mercredi 26 septembre 2012 18:58
    mercredi 26 septembre 2012 18:49
  • Merci beaucoup pour le module. Je vais le tester dès demain.
    mercredi 26 septembre 2012 20:30
  • J'ai testé votre exemple. Il est intéressant mais ne me donne pas la liste des fichiers d'un sous-répertoire. J'ai beau chercher, je ne trouve pas comment l'améliorer. Merci quand même.
    samedi 29 septembre 2012 12:40
  • bonjour Dédé,

    Et bien pas de problème il est possible d'ajouter les fichiers.

     

    Code du Form1 :

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            _Drivers.DataSource = DriveInfo.GetDrives()
            _Drivers.DisplayMember = "Name" 'Pas obligatoire car la méthode ToString() retourne cette valeur
        End Sub
    
        Private Sub _Drivers_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles _Drivers.SelectedIndexChanged
            If _Drivers.Items.Count > 0 Then
                Dim HDD As DriveInfo = DirectCast(_Drivers.SelectedItem, DriveInfo)
                _LblName.Text = "Nom volume :"
                _LblSize.Text = "Espace total :"
                _LblFreeSize.Text = "Espace total :"
                If Not HDD Is Nothing And HDD.IsReady Then
                    _LblName.Text = String.Format("Nom volume : {0}", HDD.VolumeLabel)
                    _LblSize.Text = String.Format("Espace total : {0}", HDD.TotalSize)
                    _LblFreeSize.Text = String.Format("Espace total : {0}", HDD.TotalFreeSpace)
                    'Parcourir le lecteur
                    _TreeV.Nodes.Clear()
                    For Each dir As DirectoryInfo In HDD.RootDirectory.GetDirectories()
                        _TreeV.Nodes.Add(dir.FullName)
                    Next
                    'ajout des fichiers
                    For Each _file As FileInfo In HDD.RootDirectory.GetFiles()
                        _TreeV.Nodes.Add(_file.FullName)
                    Next
                End If
            End If
        End Sub
    
        Private selectedNode As TreeNode 'garder la dernière selection
        Private Sub _TreeV_AfterSelect(sender As System.Object, e As System.Windows.Forms.TreeViewEventArgs) Handles _TreeV.AfterSelect
            If _TreeV.Nodes.Count > 0 Then
                Me.selectedNode = e.Node
            End If
        End Sub
    
        Private Sub _TreeV_DoubleClick(sender As System.Object, e As System.EventArgs) Handles _TreeV.DoubleClick
            If _TreeV.Nodes.Count > 0 Then
                'ajout des répertoires
                For Each dir As DirectoryInfo In New DirectoryInfo(selectedNode.Text).GetDirectories()
                    selectedNode.Nodes.Add(dir.FullName)
                Next
                'ajout des fichiers
                For Each _file As FileInfo In New DirectoryInfo(selectedNode.Text).GetFiles()
                    selectedNode.Nodes.Add(_file.FullName)
                Next
                Me.selectedNode.Expand()
            End If
        End Sub
     

    Projet : http://dl.free.fr/mmz5sY6Lx


    Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !

    samedi 29 septembre 2012 23:22
  • Merci pour ce module. Il correspond à ce que je recherche. Juste une question : comment je vais pour récupérer le nom du fichier choisi afin de l'utiliser par la suite. Par exemple, je veux utiliser un fichier image "Photo.jpg" qui est situé sur le disque "g:\", dans le répertoire "Machin", dans le sous-répertoire "Truc" et dans le sous-sous-répertoire "Bidule". La complexité du module me laisse un peu dubitatif car je ne suis pas un programmeur très doué. Merci d'avance.
    dimanche 30 septembre 2012 12:00
  • Merci pour ce module. Il correspond à ce que je recherche. Juste une question : comment je vais pour récupérer le nom du fichier choisi afin de l'utiliser par la suite. Par exemple, je veux utiliser un fichier image "Photo.jpg" qui est situé sur le disque "g:\", dans le répertoire "Machin", dans le sous-répertoire "Truc" et dans le sous-sous-répertoire "Bidule". La complexité du module me laisse un peu dubitatif car je ne suis pas un programmeur très doué. Merci d'avance.

    Bonjour,

    Pour récupérer le chemin, il suffit d'utiliser selectedNode.

    code après sélectionné le chemin :

    Private Sub _SelectedPath_Click(sender As System.Object, e As System.EventArgs) Handles _SelectedPath.Click
            If Not Me.selectedNode Is Nothing Then
                MessageBox.Show(Me.selectedNode.Text)
            End If
    End Sub

    Projet : http://dl.free.fr/vO9R0O70B

    Ne craignez rien, ce n'est pas compliqué comme code. Il suffit de le faire propre et robuste à max.

    Si ça vous conviens, merci de valider la réponse.


    Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !


    • Modifié Lyamine dimanche 30 septembre 2012 13:33
    • Marqué comme réponse Aurel Bera lundi 8 octobre 2012 06:37
    dimanche 30 septembre 2012 13:08
  • Avec un peu de retard, merci pour la réponse. Ca me convient très bien. Mon problème est enfin résolu.
    samedi 6 octobre 2012 11:52
  • Bonjour,

    Merci de valider en proposant comme réponse ma dernière proposition.

     

    Cordialement


    Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !

    dimanche 7 octobre 2012 08:57
  • Proposer comme réponse. merci
    dimanche 7 octobre 2012 13:54