cs_baz187rem
Messages postés78Date d'inscriptionvendredi 23 mars 2007StatutMembreDernière intervention21 juin 2010
-
27 mars 2008 à 13:34
cs_baz187rem
Messages postés78Date d'inscriptionvendredi 23 mars 2007StatutMembreDernière intervention21 juin 2010
-
27 mars 2008 à 17:47
Bonjour à tous !!
Dans une form je créer un premier controle checklistbox. Pour chaque item coché, je construit via du code des tabulations sur un tabcontrole dans lesquelles je fais créer une autre checklistbox.
Le problème avec les checklistbox c'est tant qu'on rajoute pas du code sur l'évènement listindexchanged, il faut cliquer deux fois avant qu'on puisse coché l'item que l'on veut (un pour la selection, un pour le check). Bon cette partie la est ok avec un clic, il check mon item ou l'uncheck.
Je voudrai faire passer cet évènement à toutes mes checklistbox que je créer dans le code.
J'ai réussis a faire un morceau de code me permettant de récupérer cet évenement mais le problème est qu'il me l'applique uniquement sur le derniers checklistbox créer dans mon code.
Pour cela je créer ma variable au sein de mon module
Friend withevent machecklistbox as system.windows.form.checklistbox 'je crois que c'est ca si je m'en souviends bien
puis dans une procédure
public sub creertab(tabc as tabpagecontrole)
'création des onglets pour le controle
....
...
...
'création de machecklistbox
...
...
....
...
et enfin construction de l'évenement sur le controle
Private machecklistbox selectedindexchanged(sender as system.object,.........) ......
Si quelqu'un trouve ca clair ce que je viends de raconter et qui peut m'aider je suis preneur ^^
cs_baz187rem
Messages postés78Date d'inscriptionvendredi 23 mars 2007StatutMembreDernière intervention21 juin 20101 27 mars 2008 à 17:47
Bon bah j'ai trouvé réponse a mon problème et il y a deux solutions !!!!
La plus simple c'est de mettre a true la propriété checkonclick lors de la création du controle.
Une un peu plus compliquer mais qui peut donner des idées pour autre chose c'est de faire un addhandler sur le controle créé :
AddHandler mChk.SelectedIndexChanged, AddressOf SelectedIndexChanged
et la procédure SelectedIndexChanged
Private Sub SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
If sender.GetItemCheckState(sender.SelectedIndex) = CheckState.Checked Then
sender.SetItemCheckstate(mChk.SelectedIndex) = CheckState.Unchecked
Else
sender.SetItemCheckstate(mChk.SelectedIndex) = CheckState.Checked
End If
End Sub
Si certains sont intéressés j'ai parfois un léger bug sur la deuxième solution mais c'est un bon début déjà