[VS - 2010] - VB.net : "Rafraichir" couleur d'un Usercontrol perso.

Signaler
Messages postés
32347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 mai 2021
-
Messages postés
32347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 mai 2021
-
Bonjour,

J'ai créé un (mon premier..en fait..) control personnalisé (basé sur un timer/un label et une pictureBox)...

Je lui ai déclaré un propriete : CtrlBackColor qui me permet de modifier la couleur d'arrière plan de mes différents éléments...lorsque je clic dessus ( A chaque clic sur mon control celui-ci doit changer de couleur...)

Le souci c'est que je ne parviens pas à l'actualiser lorsque j'utilise le control...
Ma propriété fonctionne bien lorsque je la modifie dans la fenêtre d'execution...

Bref, je ne comprends pas pourquoi ça ne me le prend pas en compte...


J'ai testé différentes commandes.. Refresh, Paint..etc;.. mais rien n'y fait


Une petite idée SVP...



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI

3 réponses


Bonsoir,

Peut-on voir le code de ta propriété ainsi que la façon dont tu l'utilises dans la partie appelante ?

A chaque clic sur mon control celui-ci doit changer de couleur

Juste une petite remarque : Un user control possède ses propres événements.
Dans l'IDE de VS, sur la petite liste déroulante de gauche, sélectionne 'événements', puis dans celle de droite, choisis l'événement à implémenter.
Tu n'auras plus qu'à écrire le code souhaité pour effectuer les changements de couleurs de ses contrôles.
Messages postés
32347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 mai 2021
346
Bonjour,

Lorsque je clique sur mon control, les actions suivantes se déclenchent ( aucun souci pour le lancement du timer, la recup des heures de debut et de fin... seule la couleur ne change pas )

 Private Sub CtrlPool_Changestatus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ActionClik
        If Me.Status = False Then
            Me.Status = True
            dateStart = Now()
            Me.CtrlColor = Me.colorOn
            Me.datedeb = dateStart.ToString("dd/MM/yy HH:mm:ss")
            Me.ctlTimer.Start()
        Else
            Me.Status = False
            Me.ctlTimer.Stop()
            dateStop = Now()
            Me.CtrlColor = Me.colorOf
            Me.dateFin = dateStop.ToString("dd/MM/yy HH:mm:ss")


        End If
    End Sub


Les propriétés pour ma couleur sont les suivantes :
    Public Property CtlBackColor() As Color
        Get
            Return CtrlColor
        End Get
        Set(ByVal value As Color)
            CtrlColor = value
            Me.ctldisplay.BackColor = CtrlColor
            Me.PictureBox1.BackColor = CtrlColor
            Refresh()
        End Set
    End Property


Et les variables déclarées sont de la forme :
    Public colorOn As Color = Color.LightGreen
    Public colorOf As Color = Color.Green
    Public CtrlColor As Color = colorOf
    Public Event ActionClik(ByVal sender As Object, ByVal e As EventArgs)



Encore une fois.. lorsque je manipule la propriete CtlCOlor "à la main" dans la fenetre des propriétés..ça fonctionne. Par contre, impossible qu'il prenne en compte les changements lors de son utiliation (avec les clics..).


Merci pour ton aide.



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI