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

IHM Discussion :

alterner la couleur de fond dans un formulaire en mode continu


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut alterner la couleur de fond dans un formulaire en mode continu
    Bonjour,

    Comme indique le titre, j’aimerai pouvoir récupérer la couleur de la section détail afin de l’affecter à la couleur de fond des contrôles. J’ai fait un test selon la couleur de fond de la section détail mais ça ne prend que celle qui est en dur dans les propriétés du formulaire. Donc j’ai tous les contrôles qui ont la même couleur de fond quand on clic dessus.

    Merci de votre aide et bonne année !

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    1ere question:
    Si Me.CurrentRecord est impair : fbc.HighlightColor
    Si Me.CurrentRecord est pair : Me.Section(acDetail).BackColor

    2ème question :
    Le module clsAlternateColor est un module de classe.
    Il te suffit dans chaque formulaire de définir une variable objet de type clsAlternateColor.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Private fbc As clsAlternateColor
    L'evènement sur chargement crée un nouvel objet de type clsAlternateColor
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Set fbc = New clsAlternateColor
    Chaque formulaire a alors son propre objet fbc de type clsAlternateColor.
    Tu définie la couleur dans l'évènement sur chargement avec HighlightColor:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Create a new instance of our AlternateColor class
    Set fbc = New clsAlternateColor
    fbc.HighlightColor = vbGreen
     
    ' You MUST set the Form prop
    fbc.SetForm Me
    J'espère que j'avais bien compris ta deuxième question.
    A+

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    LedZeppII, tu as bien compris la 2ème question. ça fonctionne bien.
    Par contre, je ne parviens pas à forcer le backcolor des zones de textes (ta réponse à la question 1).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If (CurrentRecord Mod 2) = 1 Then
        Me.Genus.BackColor = fbc.HighlightColor
    Else
        Me.Genus.BackColor = Me.Section(acDetail).BackColor
    End If
    Me renvoie toujours :
    j’ai tous les contrôles qui ont la même couleur de fond quand on clic dessus
    J'ai peut être mal codé ou y a t il une autre solution ?

    Merci de votre aide

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    Tu as bien codé.
    Dans un formulaire en continu, un contrôle a les mêmes attributs quelque soit la ligne, comme la zone Detail.

    La seule astuce que je vois est définir la propriété "Style de fond" du contrôle à "Transparent".
    Tu gardes ton code qui change la couleur de fond du contrôle, comme ça quand on clique dans un contrôle il n'y a aucun changement de couleur.
    Couleur fond contrôle = couleur fond ligne.

    A+

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    J'ai mis la propriété "Style de fond" du contrôle à "Transparent" mais ça ne change rien. Tous les contrôles du formulaire ont la même couleur de fond quand on clic dessus. J'ai aussi testé le code en le mettant sur l'évènement Current, même résultat, en numérotant les lignes et en appliquant une mfc, idem.
    Dernière solution que je vois à mon niveau, empêcher le clic sur le contrôle. J'ai essayé en les lockant, même résultat.
    Si tu avais (ou une autre personne) une idée.

    Merci de votre aide

Discussions similaires

  1. [AC-2010] Somme dans un formulaire en mode continu
    Par Gabout dans le forum IHM
    Réponses: 4
    Dernier message: 19/02/2015, 12h25
  2. [AC-2010] Affichage dans un formulaire en mode continu
    Par vittirivizzik dans le forum VBA Access
    Réponses: 7
    Dernier message: 13/08/2012, 10h45
  3. [AC-2000] Lier des images dans un formulaire en mode continu
    Par berthold67 dans le forum Access
    Réponses: 2
    Dernier message: 17/11/2011, 22h17
  4. Réponses: 4
    Dernier message: 28/07/2010, 17h59
  5. Réponses: 5
    Dernier message: 22/01/2007, 14h40

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