Passage de méthode pour un controle

cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 juin 2010 - 27 mars 2008 à 13:34
cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 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 ^^

Merci d'avance

1 réponse

cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 juin 2010 1
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à
0
Rejoignez-nous