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 :

groupe de contrôles


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut groupe de contrôles
    bonsoir,

    je crée un ensemble de datagridview dynamiquement et j'associe à chaque datagridview un evenement cellclick
    malheureusement, cet evenement ne fonctionne que pour la dernière datagridview crée.
    comment résoudre ce problème?
    comment parcourir toute les cellules de toutes les datagridview créées?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    addhandler dgv.cellclick, addressof une_sub

    à faire sur tous les dgv que tu créés
    sur la sub appelée, sender contiendra le dgv qui déclenche l'évènement (à caster via directcast)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    voila le code que j'utilise


    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
    47
    48
    49
    50
    51
    Public Class Form1
        Dim dtg As DataGridView
     
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
    While MyDataReader.Read()
     
    If condi1 then
     
    dtg = New DataGridView
    dtg.Name = "dtg" & i
    AddHandler dtg.CellClick, AddressOf AffichEtoile
    ‘ definir la taille et la position du datagridview
     
    Else
    dtg = New DataGridView
    dtg.Name = "dtg" & i
    AddHandler dtg.CellClick, AddressOf AffichEtoile
    ‘ definir la taille et la position du datagridview
     
    Endif
    End sub
     
     
    Private Sub AffichEtoile(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
            Dim i, j As Integer
     
            i = dtg.CurrentCellAddress.Y
            j = dtg.CurrentCellAddress.X
     
     
            Select Case j
     
                ' si une cellule de la colonne 4 est cliquée
                Case 3
                    If IsDBNull(dtg(dtg.CurrentCellAddress.X, dtg.CurrentCellAddress.Y)) Or _
                      dtg(dtg.CurrentCellAddress.X, dtg.CurrentCellAddress.Y).Value = "" Then
                        '--- Ok on inscrit une valeur
                        dtg(e.ColumnIndex, e.RowIndex).Value = "X"
                        dtg(4, i).Value = ""
                        dtg(5, i).Value = ""
     
     
                    Else
                        dtg(e.ColumnIndex, e.RowIndex).Value = ""
                    End If
     
                Case 4 ……………..
     
    end sub
    le problème est toujours le même affichEtoile ne fonctionne que pour le dernier datagridview crée!!!!!!

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    dans AffichEtoile tu manipules dtg
    dtg comme toutes les variables ne peut contenir qu'un seul datagridview, et donc le dernier que tu as mis dedans
    tous les datagridview appellent bien AffichEtoile et c'est dans cette sub que tu dois traiter le bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim d as datagridview = directcast(sender, datagridview)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Femme Profil pro
    Enseignant
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Par défaut
    merci, ça marche parfaitement.
    dans une autre procédure, j'ai besoin de parcourir toute les datagridview créées. je sais pas comment faire cela?

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    s'il sont directement sur le form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    directcast(me.controls("dtg1"),datagridview)
    s'ils sont sur un autre conteneur, il faut remplacer me par le conteneur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. [VB6]Property Get/Set avec groupe de contrôles
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/01/2006, 12h09
  2. [VB] Possibilité de créer un double groupe de contrôles ?
    Par Laialexela dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/12/2005, 09h03
  3. Réponses: 3
    Dernier message: 27/11/2005, 14h04
  4. [C#] groupes de contrôles
    Par annalady dans le forum C#
    Réponses: 5
    Dernier message: 18/11/2005, 07h25
  5. Réponses: 8
    Dernier message: 01/11/2005, 22h48

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