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 :

Inteface AERO, textbox et readonly.


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 52
    Points
    52
    Par défaut Inteface AERO, textbox et readonly.
    Bonjour.
    Je suis en train de tester sous Vista et XP une appli développée en C#, framework 2.

    Dans cette appli il y a de nombreuses fenêtres qui contiennent des controles textbox, certains étant accessibles en lecture/écriture et d'autres étant readonly.

    Sous XP je différencie très clairement, de part leur couleur de fond qui est différente, les textbox qui sont en lecture/écriture de ceux qui sont readonly.

    Sous Vista tout est plus joli mais les textbox en lecture/ecriture et ceux qui sont readonly ont exactement la même couleur de fond ! Du coup mon application est beaucoup moins intuitive !

    Est-ce un bug de Vista ou du Framework ?

    Que faire ?

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    je dirais aucun des 2
    le framework est un outil de haut niveau qui fait appel aux dll du système d'exploitation

    enfin tu dois pouvoir détecter si l'appli est sur vista, et le cas échéant changer la couleur de fond quand readonly est à true
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    je dirais aucun des 2
    le framework est un outil de haut niveau qui fait appel aux dll du système d'exploitation

    enfin tu dois pouvoir détecter si l'appli est sur vista, et le cas échéant changer la couleur de fond quand readonly est à true
    Merci pour ta réponse.

    Je comprends pas du tout pourquoi Vista ne fait pas cela tout seul !!
    Il est quand même évident qu'un utilisateur doit être visuellement informé qu'un controle est ou n'est pas en lecture seule. Même Windows 3.0 faisait automatiquement cela !!

    Il y a t-il une propriété native du type BackColorReadOnly en .Net ou faut-il que je me créé mon propre controle ?

    L'ergonomie de Vista me laisse de plus en plus perplexe ...

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    BackColor te permettra de modifier la couleur de fond du controle.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    BackColor te permettra de modifier la couleur de fond du controle.
    Donc il faut :
    - soit que je créé ma classe TextBox et fasse hériter tous mes textbox natifs de cette classe,
    - soit que, pour chaque affectation de readonly je change le backcolor.

    J'ai au moins 1000 textbopx dans mon appli !!

    Je trouve cela dingue de la part de Vista, cela veux tout simplement dire qu'il n'y aura, entre toutes les applications, aucune harmonie concernant le back color des controles en lecture seule (chaque appli, ne pouvant s'appuyer sur l'OS pour cette fonctionnalité de base, mettant la couleur de son choix).

    Et bien ...

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par sandre Voir le message
    J'ai au moins 1000 textbopx dans mon appli !!
    Find & Replace sera ton ami.
    Une chose géniale dans l'IDE C++ de borland et qui manque cruellement dans VS, c'était un petit outil qui s'intitulait "Replace component...", le nom explique bien le temps que cela pouvait faire gagner dans ce genre de situation.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Chez moi les textbox en lecture seule sont grise et les read/write sont en blanche
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    peut etre une question de visualstyle / thème
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par The_badger_man Voir le message
    Chez moi les textbox en lecture seule sont grise et les read/write sont en blanche
    Tu as quelle édition de Vista ?

  10. #10
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Professionel

    Voici une miniature:
    Images attachées Images attachées  
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  11. #11
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    On peut aussi faire une bête enumeration des TextBox ( de manière récursive par rapport à la propriété Controls de chaque ... controle ) avant chaque chargement d'une forme, et par la suite un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(ctrl is TextBox &&
      (ctrl as TextBox).ReadOnly)
    {
     (ctrl as TextBox).BackColor = ...
    }

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Et comment procederiez-vous pour créer un controle personnalisé textBox dérivé de textBox afin de forcer la couleur de fond quand celui-ci est read only ?

    Comment faire pour que dès que cette propriété readonly change la couleur de fond soitr modifiée ?

  13. #13
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    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
    public partial class TextBoxRO: TextBox
    {
     
    Color _readOnlyColor = Color.Gray;
    [Browsable(true), Category TextBoxROGlobals.ROCategory)]
    [DefaultValue("Color.Gray")]
    public Color ReadOnlyColor 
    {
        get { return _readOnlyColor ; }
        set { _readOnlyColor = value; Invalidate(); }
    }
     
    protected override void OnPaintBackground(PaintEventArgs e)
    {
       if (this.ReadOnly)
          this.BackGroundColor = ReadOnlyColor ;
    }
     
    }

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par zeavan Voir le message
    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
    public partial class TextBoxRO: TextBox
    {
     
    Color _readOnlyColor = Color.Gray;
    [Browsable(true), Category TextBoxROGlobals.ROCategory)]
    [DefaultValue("Color.Gray")]
    public Color ReadOnlyColor 
    {
        get { return _readOnlyColor ; }
        set { _readOnlyColor = value; Invalidate(); }
    }
     
    protected override void OnPaintBackground(PaintEventArgs e)
    {
       if (this.ReadOnly)
          this.BackGroundColor = ReadOnlyColor ;
    }
     
    }
    Merci !
    A quoi correspond la méthode Invalidate().
    C'est une méthode native du framework ?

  15. #15
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    oui
    invalidate demande le redessin du control
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Citation Envoyé par sandre Voir le message
    J'ai au moins 1000 textbopx dans mon appli !!
    1000?....... Il n'y en a vraiment pas qui soit redondants? (usercontrol powa?)

    Je trouve ca exagéré de Redéfinir un textBox et son PaintBackGround juste pour une couleur de fond en readonly...
    Je préfère encore la méthode de smyley, plus lourde à l'éxécution, mais qui reste pérenne quelques soit les changements (arf zut j'ai oublié de changé le type de la TextBox -_- )

    Et puis si tu peux changer le Type de chacune de tes TextBox, tu peux faire un Find&Replace comme la dit SaumonAgile

Discussions similaires

  1. Accès / Sauvegarde textBox en readonly c#
    Par sfoggy dans le forum Débuter
    Réponses: 1
    Dernier message: 23/10/2013, 15h59
  2. [Débutant] Mettre la propriété ReadOnly pour tous les textbox
    Par dvdavid dans le forum C#
    Réponses: 9
    Dernier message: 29/06/2011, 18h21
  3. Textbox Dynamique en ReadOnly
    Par DeveloppeurWeb dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/11/2010, 12h38
  4. modifier un textbox en readonly
    Par Bobbledople dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/09/2009, 09h46
  5. Mettre un textbox en readonly
    Par Batizme dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/01/2005, 14h34

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