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 :

Petit soucis sur checkbox créée dynamiquement


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut Petit soucis sur checkbox créée dynamiquement
    Bonjour à tous,
    Je créé divers objets dont une checkbox comme suit :
    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
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Call ajtLign()
    End Sub
     
    Public contLogmt As Integer = 0
    Public ChkbxLMNP() As CheckBox
     
     Sub ajtLign()
             contLogmt = contLogmt + 1
     ReDim Preserve ChkbxLMNP(contLogmt)
            ChkbxLMNP(contLogmt) = New CheckBox
            With ChkbxLMNP(contLogmt)
                .Top = 10 + 25 * contLogmt
                .Left = 800
                .Text = "Statut LMNP"
                .Visible = True
                .Width = 130
                .Tag = contLogmt
                .AutoSize = True
            End With
     
            AddHandler ChkbxLMNP(contLogmt).CheckedChanged, AddressOf lmnp
            TabPage2.Controls.Add(ChkbxLMNP(contLogmt))
     
    End Sub
     
     Sub lmnp(sender As Object, e As EventArgs)
     
            Dim Chb As CheckBox = TryCast(sender, CheckBox)
            CheckBoxOrg = Chb.Tag
     
            MsgBox("checké " & ChkbxLMNP(Chb.Tag).Checked)
            MsgBox("tag = " & Chb.Tag)
     
    End Sub
    (bien évidement j'ai supprimé des lignes de codes pour faciliter la compréhension)

    Mon problème est que pour ma 1ère checkbox créée (contLogmt = 1), mon code considère toujours qu'elle n'est pas checkée alors qu'a partir d'une deuxième créée (contLogmt = 2) il m’indique bien "checké True"

    J'ai également essayé avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     MsgBox("checké " & ChkbxLMNP(CheckBoxOrg).Checked)
     MsgBox("checké " & ChkbxLMNP(1).Checked)
    Malheureusement pour moi, le résultat est inchangé ... :'(

    Je pense que se doit être une petite erreur toute bête, mais je ne parviens pas à comprendre quel en est la source.
    Quelqu'un aurait une idée ?
    Merci d'avance

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    avec redim preserve tu encours une peine de prison
    utilises une List(of checkbox) plutot qu'un tableau
    le list est une collection qui s'utilise comme tableau à taille dynamique, .add pour ajouter, .remove pour retirer et on peut comme pour le tableau accéder à un index directement

    après dans l'event, tu récupères le checkbox dans chb, donc tu peux écrire chb.checked
    pourquoi repasser par le tableau et par un tag ? (c'est limite le tag aussi)

    au passage devant chaque membre on préfère explicitement la portée (private/public/autre) (plutot que d'écrire juste sub)
    au passage aussi, le flowlayoutpanel est un conteneur qui permet de placer les controles "à la suite" ce qui évite de définir top et left pour chaque
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Personnellement je ferai un List(of Classecheckbox) ainsi tu pourrais récupérer les événements du contrôle!

  4. #4
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut
    Mdrrr je ne tiens pas à aller en prison ! lol
    J'ai modifié mon code pour utiliser une list et mon problème semble résolu.
    Je vais maintenant essayer d'apprivoiser flowlayoutpanel ...

    Merci pour votre aide

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

Discussions similaires

  1. Message pour une checkbox créée dynamiquement
    Par g0up1l dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 30/03/2007, 12h19
  2. petit souci sur cadre d'options
    Par tibiurs dans le forum Access
    Réponses: 7
    Dernier message: 24/08/2006, 11h21
  3. Réponses: 5
    Dernier message: 06/03/2006, 17h38
  4. [C#] Petit soucis sur un TreeView ...
    Par hobotalker dans le forum Windows Forms
    Réponses: 8
    Dernier message: 29/11/2005, 15h33
  5. Petit souci sur la libération d'une connexion tcp
    Par alexandre75 dans le forum Développement
    Réponses: 1
    Dernier message: 08/11/2005, 19h43

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