none
Questions multiples sur le datagridview RRS feed

  • Question

  • Bonjour,

    J'ai plusieurs questions sur l'utilisation d'un datagridview :

    J'aimerai pouvoir un bouton qui inverse ma selection par rapport a la première colonne qui contient des checkboxs.

    Par exemple --> j'ai 1 / 2 / 3 / 4 si je selectionne 2 / 3 quand je clic sur le bouton j'ai 1 / 4. J'ai le code en fonction de selection des cases, mais j'aimerais le faire avec les checkboxs...

    Toujours le même élément, comment fait-on pour remplir une combobox dans un datagridview ?

    J'arrive a partir d'une boite de dialogue, rajouter une ligne dans ma datagridview. En activant le multiSelect, je peux en choisir plusieurs, mais dans le datagridview, il ne me place que le dernier selectionner, c'est une configuration du datagrid qu'il faut que je change ?

    Merci de vos réponses:)


    • Modifié Tom57000 mercredi 23 avril 2014 07:38 question en plus !
    mercredi 23 avril 2014 07:32

Réponses

  • Merci beaucoup ! j'y étais presque en fait !

    J'ai juste du changé la ligne : Dim filename() As String = Ouvrir.FileNames en  : Dim filename() As String = Ouvrir.SafeFilesNames.

    En effet, votre proposition donné le chemin du fichier et non juste le nom du fichier sinon c'était parfait :)

    Avec cette dernière réponse, les 3 questions sont résolues, voila un récapitulatif des infos pour les prochains qui chercheront la même chose :

    Récapitulatif :

    • Pour l'inversion des elements check :

    Je vais de la première a la dernière ligne  
    For r = 0 To DataGridView1.RowCount - 1
                  'Si c'est check, je "décheck"
                If DataGridView1.Item(0, r).Value = True Then
                    DataGridView1.Item(0, r).Value = False
                  ' Si c'est décheck, je check
                ElseIf DataGridView1.Item(0, r).Value = False Then
                    DataGridView1.Item(0, r).Value = True
                End If
            Next

    • Pour l'ajout des items dans une combobox d'un datagridview c'est :

      'Definition de la colonne
            Dim DGV_CB2 As DataGridViewComboBoxColumn
            'Placement de la colonne
            DGV_CB2 = DataGridView1.Columns.Item(2)
            'Ajout des éléments
            DGV_CB2.Items.Add("Item1")
            DGV_CB2.Items.Add("Item2")

    • Et pour l'ajout des fichiers en MultiSelection :

           ' Configuration boite dialogue
            Dim Ouvrir As New OpenFileDialog()
            Ouvrir.Filter = "Tout les fichiers |*.*" ' filtre d'extension
            ' Ouverture boite dialogue
            Ouvrir.Multiselect = True
            Dim result? As Boolean = Ouvrir.ShowDialog()
            If result = True Then
                Dim filename() As String = Ouvrir.SafeFileNames
                ' nom du fichier dans colonne 2
                For Each fichier As String In filename
                    ' ajoute la ligne
                    DataGridView1.Rows.Add(False, fichier)
                    'Range par ordre alphabétique le nouveau fichier
                    ' DataGridView1.Sort(Column3, System.ComponentModel.ListSortDirection.Ascending)
                Next
            End If


    • Modifié Tom57000 jeudi 24 avril 2014 08:34
    • Marqué comme réponse Tom57000 jeudi 24 avril 2014 08:34
    jeudi 24 avril 2014 08:33

Toutes les réponses

  • J'ai trouvé pour la première question : (Code testé)

    'Je vais de la première a la dernière ligne  
    For r = 0 To DataGridView1.RowCount - 1
                  'Si c'est check, je "décheck"
                If DataGridView1.Item(0, r).Value = True Then
                    DataGridView1.Item(0, r).Value = False
                  ' Si c'est décheck, je check
                ElseIf DataGridView1.Item(0, r).Value = False Then
                    DataGridView1.Item(0, r).Value = True
                End If
            Next

    mercredi 23 avril 2014 12:27
  • Bonjour

    J'ai mal a comprendre votre derniere question :  

    Toujours le même élément, comment fait-on pour remplir une combobox dans un datagridview ? J'arrive a partir d'une boite de dialogue, rajouter une ligne dans ma datagridview. En activant le multiSelect, je peux en choisir plusieurs, mais dans le datagridview, il ne me place que le dernier selectionner, c'est une configuration du datagrid qu'il faut que je change ?

    Vous avez une colonne de type DataGridComboBoxColumn? Ou vous voulez la sélection multiple? Sur les lignes du DataGridView ou  sur les options du  DataGridComboBoxColumn?

    Malheureusement DataGridComboBoxColumn n'accepte pas sélection multiple.

    Voir aussi ce thread :
    http://social.msdn.microsoft.com/Forums/vstudio/en-US/b51fcbde-0d51-487c-8dfe-50763cd1a5fc/adding-items-to-a-combobox-in-a-datagridview?forum=vbgeneral

    Bien cordialement, 


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 24 avril 2014 06:47
  • Bonjour,

    Je reformule mieux.

    Je veux mettre des fichiers dans le datagridview.

    J'ai donc crée un bouton genre Fichiers\Ouvrir qui me lance une boite de dialogue. Je selectionne 1 fichiers et il me le rajoute dans mon datagridview. Et fait, j'aimerais savoir comment faire pour selectionner par exemple 10 fichiers d'un coup et qu'il me mette le tout dans mon datagridview.

    Je vais regarder le lien

    Merci !

    jeudi 24 avril 2014 07:42
  • Quelle composante utilisez-vous pour sélecter les fichiers et comment vous ajoutez les fichiers au DataGrid? Sera plus simple de modifier le code déjà existent.

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 24 avril 2014 07:48
  • Sub Choix_Dossier() ' Configuration boite dialogue Dim Ouvrir As New OpenFileDialog() Ouvrir.Filter = "Tout les fichiers |*.*" ' filtre d'extension ' Ouverture boite dialogue Dim result? As Boolean = Ouvrir.ShowDialog() If result = True Then Dim filename() As String = Ouvrir.FileNames End If ' nom du fichier dans colonne 2 Dim DGV As New DataGridView DGV.Text = Ouvrir.SafeFileName ' ajoute la ligne DataGridView1.Rows.Add(False, DGV.Text) 'Range par ordre alphabétique le nouveau fichier DataGridView1.Sort(Column3, System.ComponentModel.ListSortDirection.Ascending) End Sub

    Voila le code qui me permets de faire la selection des fichiers un par un


    jeudi 24 avril 2014 07:55
  • Veuillez essayer ce code :

          ' Configuration boite dialogue
            Dim Ouvrir As New OpenFileDialog()
            Ouvrir.Filter = "Tout les fichiers |*.*" ' filtre d'extension
            ' Ouverture boite dialogue
            Ouvrir.Multiselect = True
            Dim result? As Boolean = Ouvrir.ShowDialog()
            If result = True Then
                Dim filename() As String = Ouvrir.FileNames
    
                ' nom du fichier dans colonne 2
    
                For Each fichier As String In filename
    
                    ' ajoute la ligne
                    DataGridView1.Rows.Add(False, fichier)
                    'Range par ordre alphabétique le nouveau fichier
                    ' DataGridView1.Sort(Column3, System.ComponentModel.ListSortDirection.Ascending)
                Next
            End If
    Bien cordialement,

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 24 avril 2014 08:17
  • Merci beaucoup ! j'y étais presque en fait !

    J'ai juste du changé la ligne : Dim filename() As String = Ouvrir.FileNames en  : Dim filename() As String = Ouvrir.SafeFilesNames.

    En effet, votre proposition donné le chemin du fichier et non juste le nom du fichier sinon c'était parfait :)

    Avec cette dernière réponse, les 3 questions sont résolues, voila un récapitulatif des infos pour les prochains qui chercheront la même chose :

    Récapitulatif :

    • Pour l'inversion des elements check :

    Je vais de la première a la dernière ligne  
    For r = 0 To DataGridView1.RowCount - 1
                  'Si c'est check, je "décheck"
                If DataGridView1.Item(0, r).Value = True Then
                    DataGridView1.Item(0, r).Value = False
                  ' Si c'est décheck, je check
                ElseIf DataGridView1.Item(0, r).Value = False Then
                    DataGridView1.Item(0, r).Value = True
                End If
            Next

    • Pour l'ajout des items dans une combobox d'un datagridview c'est :

      'Definition de la colonne
            Dim DGV_CB2 As DataGridViewComboBoxColumn
            'Placement de la colonne
            DGV_CB2 = DataGridView1.Columns.Item(2)
            'Ajout des éléments
            DGV_CB2.Items.Add("Item1")
            DGV_CB2.Items.Add("Item2")

    • Et pour l'ajout des fichiers en MultiSelection :

           ' Configuration boite dialogue
            Dim Ouvrir As New OpenFileDialog()
            Ouvrir.Filter = "Tout les fichiers |*.*" ' filtre d'extension
            ' Ouverture boite dialogue
            Ouvrir.Multiselect = True
            Dim result? As Boolean = Ouvrir.ShowDialog()
            If result = True Then
                Dim filename() As String = Ouvrir.SafeFileNames
                ' nom du fichier dans colonne 2
                For Each fichier As String In filename
                    ' ajoute la ligne
                    DataGridView1.Rows.Add(False, fichier)
                    'Range par ordre alphabétique le nouveau fichier
                    ' DataGridView1.Sort(Column3, System.ComponentModel.ListSortDirection.Ascending)
                Next
            End If


    • Modifié Tom57000 jeudi 24 avril 2014 08:34
    • Marqué comme réponse Tom57000 jeudi 24 avril 2014 08:34
    jeudi 24 avril 2014 08:33