[VB.Net] Souci avec un groupe de Radioboutons

Kerlouan29 Messages postés 7 Date d'inscription samedi 13 novembre 2010 Statut Membre Dernière intervention 25 juin 2011 - 28 janv. 2011 à 01:37
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 28 janv. 2011 à 10:53
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

Kerlouan29 Messages postés 7 Date d'inscription samedi 13 novembre 2010 Statut Membre Dernière intervention 25 juin 2011 1
28 janv. 2011 à 01:48
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.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 janv. 2011 à 10:53
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.
0
Rejoignez-nous