[VB.Net] Souci avec un groupe de Radioboutons

Signaler
Messages postés
7
Date d'inscription
samedi 13 novembre 2010
Statut
Membre
Dernière intervention
25 juin 2011
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
Bonjour,
Dans ma petite application, je dois à un moment saisir des résultats.
Je choisi un devoir et dans un panel apparaissent les compétences, avec des radiobouton à cocher.
Ces radiobouton sont créés par le programme et placé dans des panels eux mêmes créés à l'occasion.
Comme cela chaque ligne de radiobouton est indépendante des autres.
Voici un screen:
SCREEN

Le souci est le suivant:
je souhaite lorsque je clique sur le bouton Absent, pouvoir cocher tous les radiobouton "Non Evalue"
J'ai codé ceci:
Private Sub BTN_EleveAbsent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_EleveAbsent.Click
        For Each Element In CollectionRBTN_NonEvalue
            Element.Checked = True
        Next
    End Sub


Cela ne fait rien.
Pour info car je me demande si cela vient de là, le bouton Absent est dans un panel PNL_EnregistrementResultats qui contient un autre panel PNL_SaisieResultats dans lequel sont créés les radioboutons.
J'ai essayé de mettre le bouton Absent dans le panel PNL_SaisieResultats mais en exécutant le programme, le bouton n'apparait pas !
J'ai du mal à comprendre ce qui cloche.
Si quelqu'un a une idée... :)

Voici la partie du code qui créée les radioboutons (désolé si c'est le ***** dans le code, je débute et je suis brouillon).
Sub EnregistrementDevoirSelectionne(ByVal DevoirSelectionne As String)

        PNL_EnregistrementResultats.Enabled = True
        Label8.Enabled = False
        BTN_SelectionDevoirResultats.Enabled = False
        BTN_ListesEleves.Enabled = False
        BTN_ListesCompetences.Enabled = False
        BTN_EnregistrerResultats.Enabled = True
        Dim Devoir As New XmlDocument
        Dim Noeud As XmlNode
        Dim NoeudClasse As XmlNodeList
        Dim NoeudEnfant As XmlNode
        Dim Competences As XmlNodeList
        Dim NombreCompetences As Integer
        Dim Compteur As Integer = 0
        Dim CollectionLabelsCompetences As New List(Of Label)
        Dim CollectionRBTN_Acquis As New List(Of RadioButton)
        Dim CollectionRBTN_NonAcquis As New List(Of RadioButton)
        Dim CollectionRBTN_NonEvalue As New List(Of RadioButton)
        Dim CollectionPanel As New List(Of Panel)


        Dim a As Integer
        Dim y As Integer = 0

        Devoir.Load(DevoirSelectionne)
        Competences = Devoir.DocumentElement.GetElementsByTagName("CompetencesDevoir")
        NoeudClasse = Devoir.DocumentElement.GetElementsByTagName("Classe")
        ClasseChoisie = NoeudClasse.ItemOf(0).InnerText
        NombreCompetences = Competences(0).ChildNodes.Count


        TabControl_ListesCompetences.Visible = False
        CHKLST_ListeElevesClasseDevoirEnregistre.Parent = SplitContainer2.Panel2
        CHKLST_ListeElevesClasseDevoirEnregistre.Dock = DockStyle.Fill


        For a = 0 To NombreCompetences
            Dim LabelCompetence As New Label
            LabelCompetence.Text = ""
            LabelCompetence.AutoSize = True
            CollectionLabelsCompetences.Add(LabelCompetence)
        Next a

        For a = 0 To NombreCompetences
            Dim RBTN_Acquis As New RadioButton
            Dim RBTN_NonAcquis As New RadioButton
            Dim RBTN_NonEvalue As New RadioButton
            RBTN_Acquis.Text = "Acquis"
            RBTN_NonAcquis.Text = "Non Acquis"
            RBTN_NonEvalue.Text = "Non Evalué"
            CollectionRBTN_Acquis.Add(RBTN_Acquis)
            CollectionRBTN_NonAcquis.Add(RBTN_NonAcquis)
            CollectionRBTN_NonEvalue.Add(RBTN_NonEvalue)
        Next a

        For a = 0 To NombreCompetences
            Dim PanelCompetence As New Panel
            PanelCompetence.Text = "Compétence"
            PanelCompetence.Height = 25
            PanelCompetence.Width = 700
            CollectionPanel.Add(PanelCompetence)
        Next a



        For Each Noeud In Competences
            For Each NoeudEnfant In Noeud.ChildNodes

                If y = 0 Then

                    CollectionPanel(0).Location = New Point(3, 15)
                    CollectionLabelsCompetences(0).Location = New Point(1, 1)
                    CollectionLabelsCompetences(0).Text = NoeudEnfant.InnerText
                    CollectionRBTN_Acquis(0).Location = New Point(300, CollectionLabelsCompetences(0).Location.Y)
                    CollectionRBTN_NonAcquis(0).Location = New Point(CollectionRBTN_Acquis(0).Location.X + 110, CollectionLabelsCompetences(0).Location.Y)
                    CollectionRBTN_NonEvalue(0).Location = New Point(600, CollectionLabelsCompetences(0).Location.Y)

                    CollectionPanel(0).Controls.Add(CollectionLabelsCompetences(0))
                    CollectionPanel(0).Controls.Add(CollectionRBTN_Acquis(0))
                    CollectionPanel(0).Controls.Add(CollectionRBTN_NonAcquis(0))
                    CollectionPanel(0).Controls.Add(CollectionRBTN_NonEvalue(0))

                    PNL_SaisieResultats.Controls.Add(CollectionPanel(0))
                Else
                    CollectionPanel(y).Location = New Point(3, CollectionPanel(y - 1).Location.Y + 30)

                    CollectionLabelsCompetences(y).Location = New Point(1, 1)
                    CollectionLabelsCompetences(y).Text = NoeudEnfant.InnerText

                    CollectionRBTN_Acquis(y).Location = New Point(300, CollectionLabelsCompetences(y).Location.Y)
                    CollectionRBTN_NonAcquis(y).Location = New Point(CollectionRBTN_Acquis(y).Location.X + 110, CollectionLabelsCompetences(y).Location.Y)
                    CollectionRBTN_NonEvalue(y).Location = New Point(600, CollectionLabelsCompetences(y).Location.Y)

                    CollectionPanel(y).Controls.Add(CollectionLabelsCompetences(y))
                    CollectionPanel(y).Controls.Add(CollectionRBTN_Acquis(y))
                    CollectionPanel(y).Controls.Add(CollectionRBTN_NonAcquis(y))
                    CollectionPanel(y).Controls.Add(CollectionRBTN_NonEvalue(y))

                    PNL_SaisieResultats.Controls.Add(CollectionPanel(y))

                End If

                y = y + 1

            Next
        Next

2 réponses

Messages postés
7
Date d'inscription
samedi 13 novembre 2010
Statut
Membre
Dernière intervention
25 juin 2011

PS: je précise que mes collections de boutons, panels, labels sont en faits déclarés en variables publiques. J'ai oublié de les enlever de la procédure.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
34
Salut,

J'ai pas tout compris au descriptif.

Il me semble que tu n'attaches pas d'evenements apres la creation de radiobutton.

Addhandler BTN_EleveAbsent.click, adressof BTN_EleveAbsent_Click

C'est le probleme en general des composants ajoutes dynamiquement
il manque les abonnements.