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

Windows Forms Discussion :

[VB.NET]Gestion de radioButton dans une GroupBox


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Par défaut [VB.NET]Gestion de radioButton dans une GroupBox
    Bonjour tout le monde

    Alors voila mon problème (que je me suis un peu créé tout seul .. :p) :
    J'ai un ensemble de radiobutton (en apparend bouton et non pas l'apparence de base, vous verrez c'est un peu la base de mon pb) dans une groupbox (une dizaine de boutons). Mon pb est que je suis une feignasse et que j'ai pas envie de traiter l'évenement RadioButton.checkedChanged 10 fois (pour changer la couleur de fond du bouton, ca parait anodin mais c'est important dans mon apli et pour lancer les routines associées) donc ne trouvant pas de propriété changeant automatiquement ala couleur du bouton qd il est checked (est ce que ca existe ?, ca me serait utile même si il reste à gérer le lancement des routines) j'ai essayé la chose suivante :

    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
        Private Sub GroupBox2_Enter(ByVal sender As System.Object,  _
    ByVal e As System.EventArgs) Handles GroupBox2.Enter
            Dim RadioTemp As RadioButton
            Application.DoEvents()
            'On va chercher quel radio est checked
            RadioTemp = WichRadioIsChecked(GroupBox2)
            If RadioTemp Is Nothing Then
            Else
                'si il est check on change la couleur, et/ou on lance une routine
                RadioTemp.BackColor = System.Drawing.Color.Yellow
            End If
        End Sub
     
     
        'Fonction qui chope le radio checked ds la groubox passée en argument
        Private Function WichRadioIsChecked(ByVal Ctrl As Control) As RadioButton
            Dim RadioTemp As RadioButton
            Dim C As Control
     
            For Each C In Ctrl.Controls
                RadioTemp = CType(C, RadioButton)
                If RadioTemp.Checked Then
                    Return RadioTemp
                    Exit For
                End If
            Next
        End Function
    Ce code (surtout la fonction de vérification des boutons) est inspiré par un exemple que j'ai trouvé en c# sur le forum, je sais pas si c tres bien retranscrit en vb, sachant que je connais pas vraiment le c# ^^ mais à priori c'est pas ça qui pose problème.
    En effet deux problèmes se posent a moi :

    1 - Qd je clic sur un bouton l'évenement enter du groupbox se déclenche, jsuque la tout va bien, il fait bien tt ce que je lui demande, sauf que apparement l'évenement se déclenche avant que la propriété checked du bouton ne passe a true ... :-/ (j'ai vérifié en le chose en mettant checked du bouton 1 a true et en cliquant sur un autre bouton, c'est le bouton 1 qui change de couleur)

    2 - Une fois que j'ai cliqué sur un bouton et donc que je suis rentré dans la groupbox, et bin j'ai beau cliqué sur tt les boutons, l'évenement enter ne peut bien sur plus se produire .... :-/ et donc je suis obligé de cliquer sur un control ailleurs ds la form pour pouvoir reproduire l'évenement ce qui est bien sur completement indésirable.

    Ca me paraissait simple (et ca l'est surement ) mais j'ai été déçu de pas trouver ce genres de choses toutes faites dans les méthodes de la groupbox (et jai cherché !! :p)

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 22
    Par défaut
    Bon et bien j'ai fini par trouver tout seul
    J'utilise betement le fait qu'on puisse coller plusieurs événements dérrière un handles ...
    N'empeche que la fonction qui me retourne le bouton qui est checked est bien pratique

    Voila mon code au final

    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
        Private Sub ChangeCouleurBoutons(ByVal Ctrl As Control)
            Dim RadioTemp As RadioButton
            Dim C As Control
     
            For Each C In Ctrl.Controls
                RadioTemp = CType(C, RadioButton)
                If Not RadioTemp.Checked Then
                    RadioTemp.BackColor = _
    System.Drawing.Color.FromArgb(CType(255, Byte), CType(255, Byte), _
    CType(128, Byte))
                End If
            Next
        End Sub
     
     
        Private Sub Button_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Radio1.CheckedChanged, Radio2.CheckedChanged, Radio3.CheckedChanged ‘ et ainsi de suite …
            Dim ButtonClicked As RadioButton
     
            ButtonClicked = CType(sender, RadioButton)
            ButtonClicked.BackColor = System.Drawing.Color.Yellow
    ‘on appelle la function qui va aller lire la prop Checked de tt les ‘controles
            ChangeCouleurBoutons(GBoxChoixAntenne)
        End Sub

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

Discussions similaires

  1. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  2. position d'un radioButton dans une groupBox
    Par isoman dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/12/2008, 12h15
  3. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41
  4. Réponses: 5
    Dernier message: 08/02/2005, 13h05
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

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