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

Windows Forms Discussion :

[VB2005] TextBox personnalisée


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut [VB2005] TextBox personnalisée
    Bonsoir,

    J'ai un petit problème avec une TextBox à laquelle je veux ajouter des fonctionnalités. Pour cela je développe mon propre composant.
    Pour le début, je souhaite juste lui ajouter une propriété AnoActive qui colore le controle en anomalie.
    Mon problème, c'est que je voudrais lui fixer une couleur "normale" au design sous VS. En ano, elle devient bleue, mais elle ne revient pas sur la couleur fixée lorsqu'elle n'est plus en ano. Le coeur du problème, c'est que je n'arrive pas à stocker cette couleur par défaut quand le contrôle se charge.

    Voici mon code
    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
     
    Public Class jmTxtBox
        Inherits TextBox
     
        Private m_AnoActive As Boolean = False
     
        Public Property AnoActive() As Boolean
            Get
                Return m_AnoActive
            End Get
            Set(ByVal value As Boolean)
                m_AnoActive = value
     
                If m_AnoActive Then
                    BackColor = Drawing.Color.Cyan
                Else
                    BackColor = Drawing.Color.White
                End If
            End Set
        End Property
     
    End Class
    Comme vous le voyez, je force à blanc lorsqu'elle revient "normale", mais c'est pas tout à fait ce que je souhaite...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2005
    Messages : 80
    Par défaut
    Tu devrais te créer une variable globale de type color et l'assigner à la valeur par défaut dans le constructeur de ton contrôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private CouleurParDefaut As Drawing.Color
    Public Sub New()
           CouleurParDefaut = Me.BackColor
    End Sub

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par Zyth
    Tu devrais te créer une variable globale de type color et l'assigner à la valeur par défaut dans le constructeur de ton contrôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private CouleurParDefaut As Drawing.Color
    Public Sub New()
           CouleurParDefaut = Me.BackColor
    End Sub
    Et oui, j'y ai pensé, et même testé (sûrement pas bien).

    Le problème est quand le faire ? J'ai essayé sur un événement Load mais je ne sais pas si c'est le meilleur. Quoi qu'il en soit, j'attrapais bien l'événement pour fixer ma variable privée de couleur. Sauf que malheureusement, cette backcolor ne contenait pas celle que j'avais spécifié. Je me retrouvais invariablement avec une backcolor grise ou transparent, je ne me rapelle plus. Est-ce qu'elle est fixée après le Load ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2005
    Messages : 80
    Par défaut
    Par défaut, la valeur de BackColor du Textbox va prendre la couleur "Window". Donc, que tu changes sa propriété BackColor en design ou en run time, sa valeur par défaut sera toujours "Window". Il faudrait que tu assignes plutôt ta variable de type couleur dans la propriété BackColor en l'overridant dans ton contrôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Public Overrides Property BackColor() As System.Drawing.Color
            Get
                Return MyBase.BackColor
            End Get
            Set(ByVal value As System.Drawing.Color)
                MyBase.BackColor = value
                CouleurParDefaut = value
            End Set
        End Property

  5. #5
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Je vais essayer ça ce soir.
    Merci.

Discussions similaires

  1. infobulle sur textbox personnalisée
    Par UDSP50 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/03/2014, 17h35
  2. personnaliser le textbox
    Par islamune9 dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/05/2007, 17h37
  3. Personnalisation DatagridColumn TextBox
    Par benji_dv dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/04/2007, 09h41
  4. [VB2005]Calcul de deux valeurs de TextBox
    Par Jiyuu dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/01/2007, 22h55
  5. [VS2005][VB2005] Thème xp, menus, personnalisation
    Par E.Alive dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/06/2006, 02h16

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