none
choisir un repertoire et lister les noms de fichiers dans une dataGridView (VB 2010) RRS feed

  • Question

  • Bonjour,

    J'ai une dataGridView avec 2 colonnes :

    - Une type "checkbox"

    - une type "combobox"

    Dans la première j'aimerais pouvoir en selectionnant un dossier, qu'il me liste dans le datagridview tout les fichiers qu'il s'y trouve.

    Avant que je passe la colonne en "checkbox" il m'afficher un truc bizarre "System\datagrid..." (il me semble) et depuis que j'ai mis en "checkbox", j'ai une erreur d'argument.

    Voici le code concerné :

    'Choix Repertoire
        Sub Ouverture_Dossier()
            Dim Répertoire As String
            Dim rep As String
            Dim objShell As Object, objFolder As Object, oFolderItem As Object
            objShell = CreateObject("Shell.Application")
            objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H210&)
            On Error GoTo siannule
            oFolderItem = objFolder.Items.Item
            Répertoire = oFolderItem.Path
            ListView1.Items.Clear()
            Répertoire = Répertoire & "\"
            Call Choix_Dossier(Répertoire)
            Label_Destination.Text = Répertoire
    siannule:
        End Sub
        'Ouverture de tout les fichiers type .XLS
        Sub Choix_Dossier(ByVal MyPath) ' fonction charge une listbox
            Dim myname As String
            If MyPath Is Nothing Then Exit Sub
            'methode pour trouver tous les dossiers 
            myname = Dir(MyPath, vbDirectory)
            ' remplissage du tableau
            Do While myname <> ""
                ' Ignore le répertoire courant et le répertoire contenant le répertoire courant
                If myname <> "." And myname <> ".." Then
                    ' Utilise une comparaison au niveau du bit pour vérifier que MyName est un répertoire.
                    If (GetAttr(MyPath & myname) And vbDirectory) <> vbDirectory Then
                        ' verifie l'existance d'extension pour eviter erreur
                        If Len(myname) > 3 Then
                            If UCase(Strings.Right(myname, 4)) = ".XLS" Then
                                Dim sFile As New System.IO.FileInfo(MyPath & myname)
                                Dim LVI As New DataGridView
                                ' nom du fichier dans colonne 1
                                LVI.Text = myname
                                ' ajoute la ligne
                                DataGridView1.Rows.Add(LVI)
                            End If
                        End If
                    End If
                End If
                ' Extrait l'entrée suivante
                myname = Dir()
                DossierCourant = MyPath
            Loop
        End Sub

    mardi 22 avril 2014 07:43

Réponses

  • Bonjour,

    Corrigez le code suivant :

    LVI.Text = myname
    ' ajoute la ligne
    DataGridView1.Rows.Add(False, myname)

    La valeur False correspond à la colonne contenant le CheckBox...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera mercredi 23 avril 2014 06:10
    • Marqué comme réponse Tom57000 mercredi 23 avril 2014 07:08
    mercredi 23 avril 2014 00:19
    Modérateur
  • J'ai trouvé la solution, il fallait je mette ma deuxième colonne en "textbox" sinon ça ne marche pas !

    Merci !

    • Marqué comme réponse Tom57000 mercredi 23 avril 2014 07:08
    mercredi 23 avril 2014 07:08

Toutes les réponses

  • Bonjour,

    Corrigez le code suivant :

    LVI.Text = myname
    ' ajoute la ligne
    DataGridView1.Rows.Add(False, myname)

    La valeur False correspond à la colonne contenant le CheckBox...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Proposé comme réponse Aurel Bera mercredi 23 avril 2014 06:10
    • Marqué comme réponse Tom57000 mercredi 23 avril 2014 07:08
    mercredi 23 avril 2014 00:19
    Modérateur
  • L'erreur suivante c'est produite dans le datagridview :

    System.ArgumentExeption : la valeur datagridviewcomboboxcell n'est pas valide.

    Voila le message d'erreur qui apparait maintenant :x

    mercredi 23 avril 2014 06:47
  • J'ai trouvé la solution, il fallait je mette ma deuxième colonne en "textbox" sinon ça ne marche pas !

    Merci !

    • Marqué comme réponse Tom57000 mercredi 23 avril 2014 07:08
    mercredi 23 avril 2014 07:08