IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Changer dynamiquement la couleur d'une étiquette d'un Textbox [Sources]


Sujet :

Contribuez

  1. #1
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut Changer dynamiquement la couleur d'une étiquette d'un Textbox
    Bonjour,

    Voici un petit code source intéressant...
    Comment changer dynamiquement la couleur d'une étiquette d'un Textbox ?

    Objectif :
    Vous remplissez un Textbox dans un formulaire et vous souhaitez que la couleur de l'étiquette qui lui est attachée change de couleur selon que le Textbox contient ou non quelque chose :
    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
    Option Compare Database
    Option Explicit
    
    Private Sub MyTextBox_BeforeUpdate(Cancel As Integer)
    **Call ChangeColorCaption(MyTextBox, RGB(25, 160, 240))
    End Sub
    
    Private Sub ChangeColorCaption(TxtBox As TextBox, ByVal ChangedColor As Long)
    Dim oCtl As Control
    Dim oLabel As Label
    Dim oForm As Form
    Dim strContent As Variant
    Dim strLabel As String
    Dim lngColor
    **strContent = TxtBox.Text
    **If IsNull(strContent) Or Len(strContent) = 0 Then
    ****lngColor = RGB(0, 0, 0)
    **Else
    ****lngColor = ChangedColor
    **End If
    **Set oForm = Form
    **Set oCtl = TxtBox
    **strLabel = oCtl.Controls.Item(0).ControlName
    **Set oLabel = oForm.Controls(strLabel)
    **oLabel.ForeColor = lngColor
    **Set oCtl = Nothing
    **Set oForm = Nothing
    **Set oLabel = Nothing
    End Sub
    Le changement se fait sur l'événement BeforeUpdate() et considère les paramètres :
    • NomDuControl TextBox
    • Couleur RGB

    associés lors de l'appel de la procédure ChangeColorCaption()

    Argy

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello Argy,

    en complément / additif de ta source, je poste la méthode pour généraliser ce code à l'ensemble des textbox, ce qui peut être pratique pour un formulaire de 50 textbox ...

    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
    Private Sub Form_Load()
    
    Dim ctl As Control
    
    For Each ctl In Me.Controls
        If ctl.ControlType = acTextBox Then
            ctl.BeforeUpdate = "=TrackControl(""" & ctl.Name & """)"
        End If
    Next ctl
    
    Set ctl = Nothing
    
    End Sub
    
    
    Private Function TrackControl(ByVal ctlName As String)
    
    If IsNull(Me.Controls(ctlName)) Or Len(Me.Controls(ctlName)) = 0 Then
        Me.Controls(Me.Controls(ctlName).Controls.Item(0).ControlName).ForeColor = RGB(0, 0, 0)
    Else
        Me.Controls(Me.Controls(ctlName).Controls.Item(0).ControlName).ForeColor = RGB(25, 160, 240)
    End If
    
    End Function

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/09/2007, 18h11
  2. Changer partiellement la couleur d'une image
    Par freud dans le forum Delphi
    Réponses: 2
    Dernier message: 03/06/2006, 12h15
  3. Réponses: 3
    Dernier message: 31/08/2005, 17h52
  4. Comment changer dynamiquement la valeur d'une option de DbGrid ?
    Par Atrebate62 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/03/2005, 13h35
  5. Changer dynamiquement la couleur d'un item d'une listview
    Par little_cypress dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/11/2004, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo