Bonjour,

Je rencontre un problème et je n'arrive pas à mettre le doigt sur la solution (et je suis certain que ça ne doit pas être très complexe en plus...).

J'ai créé un controle personalisé très simple : une sorte de checkBox iPhone Like. Ses fonctions sont (pour l'intant) très basiques :
Le controle est composé d'une image qui change en fonction de la valeur de sa propriété _value (boolean).

Apperçu du controle myCheckBox :



Voici le code correspondant à ce contrôle :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
Public Class MyCheckBox
 
    Private _value As Boolean = False
 
    Public Sub New()
 
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
 
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        SetValue(False)
    End Sub
 
    Public Sub New(ByVal pValue As Boolean)
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
 
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        SetValue(pValue)
    End Sub
 
    Public Function GetValue() As Boolean
        Return Me._value
    End Function
 
    Public Sub SetValue(ByVal pValue As Boolean)
        'Met le _value à la valeur passée en paramètres et affiche l'image correspondante
        Me._value = pValue
        If Me._value Then
            picChk.Image = My.Resources.chk_yes
        Else
            picChk.Image = My.Resources.chk_no
        End If
    End Sub
 
    Public Sub picChk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picChk.Click
        SetValue(Not Me._value)
    End Sub
 
End Class
J'ai testé le controle sur un formulaire et il fonctionne parfaitement (changement d'état et d'image).

J'ai ensuite créé un contôle légèrement plus complexe (shiftControl) et composé en grande majorité de controles myCheckBox.
Ces contrôles myCheckBox sont ajoutés dynamiquement au controle shiftControl.

Apperçu du contrôle shiftControle :



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
28
29
30
31
32
33
34
35
Public Class ShiftControl
 
    Private _checks(3, 7) As MyCheckBox
 
    Public Sub New(ByVal pIdLigne As Integer, ByVal pWeekNum As Integer)
 
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
 
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
 
        'Récupération des contrôles myCheckBox
 
 
        Dim tLefts() As Integer = {2, 46, 90}
        Dim tTops() As Integer = {39, 55, 71, 87, 103, 122, 138}
 
        For iP As Integer = 0 To 2
            For iJ As Integer = 0 To 6
                'Il faudra vérifier en base la valeur...
                Me._checks(iP, iJ) = New MyCheckBox()
                'Positionnement
                Me._checks(iP, iJ).Top = tTops(iJ)
                Me._checks(iP, iJ).Left = tLefts(iP)
                Me._checks(iP, iJ).Visible = True
 
                'Ajout du controle
                Me.Controls.Add(Me._checks(iP, iJ))
            Next
        Next
 
    End Sub
 
 
End Class
Seulement voilà : les myCheckBox présents dans le shiftContrôle ne déclenchent pas l'évènement Click

Si quelqun a une idée du pourquoi de la chose, je suis fortement interressé

Merci