none
TabControl & RadioButton RRS feed

  • Question

  • Bonjour à tous

    Dans un formulaire j'utilise un TabControl pour définir les propriétés d'un produit x

    Chaque TabPage désigne le model et dans celles-ci des RadioButton désignent sa forme

    Mon soucis est que je ne dois avoir qu'un seul résultat possible.

    Si dans TabPage1 j'ai RB1 checked et que je passe dans TabPage2 pour checké RB18 par exemple

    RB11 reste checké sur TabPage1

    Comment lier tous lier tous les RB entre eux ?

    Merci



    PARIS Michel
    samedi 16 avril 2011 09:28

Réponses

  • Bonjour Michel,

    Je n'ai jamais utilié en vbNt de tabControl, alor avant de comprendre je risque de mettre 30 minutes, ainsi je réponds simplement sur le principe :

    A chaque fois que l'on change un radioButton à checked, il faut mettre les autres à checked=false

    Exemple schématique :

    <pre>dim cc as byte 
    cc = checked cliqué (click, changé ?) 
    for i = débtu to fin 
    radio.checked = false 
    next 
    radio(cc).checked = true
    
    Cordialement.

    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    • Proposé comme réponse EhJoe mercredi 20 avril 2011 12:00
    • Marqué comme réponse Ciprian Duduiala vendredi 22 avril 2011 14:03
    dimanche 17 avril 2011 10:24
  • Bonjour, Michel,

    EhJoe a raison, pour lier les RB il faut mettre les autres RB à checked=false chaque fois qu’on change un RB à checked. J’ai fait un petit exemple que j’ai testé et marche :

    Pour chaque RB on va définir l’évènement :

    Private Sub RadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton.CheckedChanged

     

            Dim rb As RadioButton = CType(sender, RadioButton)

     

            If rb.Checked Then

                Uncheck(rb)

            End If

     

    End Sub

    et la fonction Uncheck sera définie dans le code de notre forme:

    Private Sub Uncheck(ByVal rb As RadioButton)

     

            For Each tp As TabPage In Me.TabControl.Controls

     

                For Each control As Control In tp.Controls

     

                    If TypeOf control Is System.Windows.Forms.RadioButton Then

                        Dim radioBtn As RadioButton = CType(control, RadioButton)

                        If radioBtn.Checked And radioBtn IsNot rb Then

                            radioBtn.Checked = False

                        End If

                    End If

     

                Next

            Next

    End Sub

     

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 20 avril 2011 10:07

Toutes les réponses

  • Bonjour Michel,

    Je n'ai jamais utilié en vbNt de tabControl, alor avant de comprendre je risque de mettre 30 minutes, ainsi je réponds simplement sur le principe :

    A chaque fois que l'on change un radioButton à checked, il faut mettre les autres à checked=false

    Exemple schématique :

    <pre>dim cc as byte 
    cc = checked cliqué (click, changé ?) 
    for i = débtu to fin 
    radio.checked = false 
    next 
    radio(cc).checked = true
    
    Cordialement.

    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    • Proposé comme réponse EhJoe mercredi 20 avril 2011 12:00
    • Marqué comme réponse Ciprian Duduiala vendredi 22 avril 2011 14:03
    dimanche 17 avril 2011 10:24
  • Bonjour, Michel,

    EhJoe a raison, pour lier les RB il faut mettre les autres RB à checked=false chaque fois qu’on change un RB à checked. J’ai fait un petit exemple que j’ai testé et marche :

    Pour chaque RB on va définir l’évènement :

    Private Sub RadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton.CheckedChanged

     

            Dim rb As RadioButton = CType(sender, RadioButton)

     

            If rb.Checked Then

                Uncheck(rb)

            End If

     

    End Sub

    et la fonction Uncheck sera définie dans le code de notre forme:

    Private Sub Uncheck(ByVal rb As RadioButton)

     

            For Each tp As TabPage In Me.TabControl.Controls

     

                For Each control As Control In tp.Controls

     

                    If TypeOf control Is System.Windows.Forms.RadioButton Then

                        Dim radioBtn As RadioButton = CType(control, RadioButton)

                        If radioBtn.Checked And radioBtn IsNot rb Then

                            radioBtn.Checked = False

                        End If

                    End If

     

                Next

            Next

    End Sub

     

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 20 avril 2011 10:07
  • Bonsoir Joe

    Trop débordé en ce moment et je n'ai pas encore eu le temps de tester ton code,

    mais je te fais entière confiance car jusqu'à maintenant tu m'as été d'un grand secour.

    Et merci à Ciprian qui d’ailleurs confirme ton principe.

    Je donne des nouvelles dès que j'aurai testé pour mon cas de figure.

    Bonne soirée à tous et à bientot

    Cdlt 


    PARIS Michel
    mercredi 20 avril 2011 19:54
  • Bonjour Joe et Ciprian

    Merci pour les conseils et le code c'est ce que je voulai

    reste à adapter pour moi 

    A +


    PARIS Michel
    samedi 23 avril 2011 07:46