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 :

dictionnaire et datagridview


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut dictionnaire et datagridview
    Bonjour tout le monde,

    Alors voila :

    J'utilise un 1er DGV (DGVChoixPertes) lequel affiche en colonne cachée (index = 0) l'Id de le perte et le nom visible par l'utilisateur, et sur l'évènement CellClick, l'affichage dans un 2ème DGV de lignes pouvant être modifiées par l'utilisateur.

    Quand il clique sur une autre ligne de DGVChoixPertes, je stock dans un dictionnaire les lignes remplies (si il y en a) pour pouvoir les réafficher en cas de retour sur une ligne précédente.

    Le soucis c'est qu'il ne me réaffiche pas les données saisies dans les cellules, il remet bien le même nombre de lignes mais vides...

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub DGVChoixPerte_CellClick(ByVal sender As DataGridView, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
                            Handles DGVChoixPerte.CellClick
            'Si le dico ne contient pas encore de référence à la perte choisie, on lui ajoute une nouvelle arraylist pour cette dernière
            If Not dico.ContainsKey(sender.SelectedCells(0).Value) Then
                dico.Add(sender.SelectedCells(0).Value, New ArrayList)
            End If
     
            'Stockage des lignes dans l'Arraylist du dico qui va bien
            CType(dico.Item(sender.SelectedCells(DGVPertes.Tag).Value), ArrayList).Clear()
            For Each row As DataGridViewRow In DGVPertes.Rows
                CType(dico.Item(sender.SelectedCells(DGVPertes.Tag).Value), ArrayList).Add(row)
            Next
     
            'On efface les lignes à l'écran
            DGVPertes.Rows.Clear()
     
            'Si l'Arraylist qui référence la perte choisie contient des lignes, on les affiche
            If CType(dico.Item(sender.SelectedCells(0).Value), ArrayList).Count > 0 Then
                Dim i As Integer = 0
                For i = 0 To i = CType(dico.Item(sender.SelectedCells(0).Value), ArrayList).Count - 1
                    DGVPertes.Rows.Add(CType(dico.Item(sender.SelectedCells(0).Value), ArrayList).Item(i))
                Next
            End If
     
            'On tag la DataGridView pour le prochain passage
            DGVPertes.Tag = DGVChoixPerte.SelectedCells(0).Value
     
            'Rafraichissement du dataSource pour le choix de la sous-perte
            Dim newDataSource As New ArrayList
            For Each sp As SousPerte In listeSousPerte
                If sp.PerteId = sender.SelectedCells(0).Value Then
                    newDataSource.Add(sp)
                End If
            Next
            ColumnSousPerte.DataSource = newDataSource
     
            'On ajoute une nouvelle ligne pour saisie utilisateur
            DGVPertes.Rows.Add()
            For Each c As DataGridViewCell In DGVPertes.Rows(DGVPertes.RowCount - 1).Cells
                If Not TypeOf c Is DataGridViewComboBoxCell Then
                    c.Value = ""
                Else
                    CType(c, DataGridViewComboBoxCell).Value = 0
                End If
            Next
        End Sub
    Donc ma question est simple : Comment faire pour garder en mémoire les valeurs des cellules ?

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Problème résolu

    J'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Si l'Arraylist qui référence la perte choisie contient des lignes, on les affiche
            If CType(dico.Item(sender.SelectedCells(0).Value), ArrayList).Count > 0 Then
                Dim i As Integer = 0
                For i = 0 To i = CType(dico.Item(sender.SelectedCells(0).Value), ArrayList).Count - 1
                    DGVPertes.Rows.Add(CType(dico.Item(sender.SelectedCells(0).Value), ArrayList).Item(i))
                Next
            End If
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Si l'Arraylist qui référence la perte choisie contient des lignes, on les affiche
            If CType(dico.Item(sender.SelectedCells(0).Value), ArrayList).Count > 0 Then
                For Each row As DataGridViewRow In CType(dico.Item(sender.SelectedCells(0).Value), ArrayList)
                    DGVPertes.Rows.Add(row)
                Next
            End If
    je ne sais pas pourquoi mais avec la première boucle il ne rentrait même pas dedans...

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

Discussions similaires

  1. dictionnaire de données
    Par samiroquai dans le forum Schéma
    Réponses: 16
    Dernier message: 17/07/2008, 01h40
  2. Un fichier dictionnaire ?
    Par portu dans le forum Windows
    Réponses: 6
    Dernier message: 17/04/2007, 15h26
  3. Réponses: 1
    Dernier message: 01/09/2006, 20h13
  4. Dictionnaire locales centralisé
    Par Jeweller dans le forum XMLRAD
    Réponses: 5
    Dernier message: 14/01/2005, 16h18

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