Forum Clubic

[VB NET 2003] Groupbox en vb net - Probleme count dans un groupbox

J’ai un drole de probleme en VB NET 2003. Pour accelerer les choses a la creation de l’interface utilisateur, j’ai utilisé le copie collé sur les Groupbox. Le problème survient quand j’utilise ceci :

Function GetValuGroup(ByRef controlb As GroupBox, ByVal ModeVal As Byte)
        'Cette fonction retoure True or False pour un groupe d'option
        'controlb : controle box passer en reference
        'ModeVal : Fonctionnalite de GetValuGroup, peux retoutner True or False si = 1 ou l'option choisi si = 0
        For Each TB As RadioButton In controlb.Controls()
            If TB.Checked = True Then
                If ModeVal = 1 Then
                    Select Case Microsoft.VisualBasic.Right(TB.Name, 1)
                        Case 1
                            GetValuGroup = True
                        Case 2
                            GetValuGroup = False
                    End Select
                Else
                    GetValuGroup = Microsoft.VisualBasic.Right(TB.Name, 1)
                End If
            End If
        Next
    End Function

Si mon Groupbox contenant 3 radio a ete copié une foie, <controlb> contiendra 4 radio. Donc imaginez une intrface contenant plusieurs Groupbox contenant des radio avec du code lié au Groupbox …

GROS DËSASTRE !!!!
Je dois éffacer les GroupBox ayant l’Erreur CROSOFT et les refaire.

Exist-il un moyen de corriger ca dans <Windows Form Designer generated code>, j’ai cherché mais j’ai pas trouvé comment.

quelle genre d’erreur ?!

Dans la boucle For Each TB As RadioButton In controlb.Controls()
il voie 4 radio a la place de 2. Visiblement, il y en a 2 mais l’objet controlb en contient curieusement 4. Fait le test, tu passes en reference ton objet Groupbox dans cette function et tu vas comprendre.

hmm en c# je n’ai jamais eu de prob …
mon code est un truc dans ce genre :

foreach (Control ctrl in controlb.Controls)
if (ctrl is RadioButton)

As-tu fait le test en VB NET?
Je viens de faire le test en VB NET 2005 Express et je ne rencontre pas le problème.

Possible que ce probleme provienne seulement de la version 2003.
Quelcun d’autre a fait le test seulement pour confirmer ce Bug.

Merci!

non j’ai seulement c# 2005 :frowning: