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 :
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.
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
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.
Partager