RadionButton en .net

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 17 janv. 2006 à 21:46
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 18 janv. 2006 à 01:49
Salut,

j'ai une petite question pour les pro de .net
j'ai mis des radio button sur une form qui contient des panels (ici c'est encore débutant, ça ce corse après)

le problème, c'est que je veux mes radioButton lié ensemble (ça c,est encore simple)

sauf que tout mes radioButton sont sur des panels différents (il est ici le bug)

d'après l'aide de microsoft, les radioButton se regroupe quand il se trouve dans le même conteneur, sauf que moi je veux les regroupé quand ils sont dans des conteneurs différents.

quelques chose me dit qu'il va faloir que je me crée une class qui permet de le faire, mais avant, est ce qu'il y a quelqu'un qui aurait une astuce ??? J'ai essayé de les mettre dans un groupbox qui était pas affiché, mais ça marche pas :-(

Quelqu'un connait la solution ???


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------

3 réponses

Utilisateur anonyme
17 janv. 2006 à 22:26
Ben, la seul solution qui me vient et de mettre tous les radiobuton dans un tableau et d'intercepter l'événement du check pour déséléctionner toutes les autres.

Public Class Form1

Dim GroupRadioButton As New GroupRadioButton

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GroupRadioButton.AddRange(New System.Windows.Forms.RadioButton() {RadioButton1, RadioButton2, RadioButton3, RadioButton4})
Call GroupRadioButton.SetList()
End Sub

End Class

Public Class GroupRadioButton
Inherits System.Collections.Generic.List(Of System.Windows.Forms.RadioButton)

Public Sub SetList()
For Each RadioButton As System.Windows.Forms.RadioButton In Me
AddHandler RadioButton.CheckedChanged, AddressOf RadioButton_CheckedChanged
Next
End Sub

Private Sub RadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim SelectRadioButton As System.Windows.Forms.RadioButton = CType(sender, System.Windows.Forms.RadioButton)
If SelectRadioButton.Checked = True Then
For Each RadioButton As System.Windows.Forms.RadioButton In Me If RadioButton.Equals(SelectRadioButton) False Then RadioButton.Checked False
Next
End If
End Sub

End Class

Dans l'example, RadioButton1 et RadioButton2 sont dans un panel et RadioButton3 et RadioButton4 dan sune autre panel.

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 janv. 2006 à 22:28
Petite suggestion, je sais pas si c'est possible.

Tu rajoute un panel pardessus tes autres panels, sans bordure, et avec le fond transparent, pour qu'il soit parfaite invisible.

Tu met tes radiosboutons sur ce panel, comme ça ils seront dans le même conteneur, mais apparaitrons dans des zones différentes de ton écran.

<hr size="2" width="100%">
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
18 janv. 2006 à 01:49
pour casy, non c'est réellement pas propre comme programmation



[auteurdetail.aspx?ID=231472 Charles Racaud] oui c'était ma solution, mais avec un peut plus d'option, si je devais me faire une class



je voulais surtoutr savoir s'il y avait une façon déjà implémenté dans
.net. Je crois que non, sinon j'ai rien trouvé, même sur google.



bon, pour faire changement, je vais faire la class et la mettre sur le site .... pour la xxxxxx fois lol



P.S.: avec un GroupRadioButton, ça sera pas le best, va faloir passer par une collection qui prend moins de mémoire

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
Rejoignez-nous