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 :

[C#]2 sortes de TextBox?


Sujet :

Windows Forms

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut [C#]2 sortes de TextBox?
    Bonjour,
    --------

    En travaillant sur des contrôles dérivés de TextBox j'ai rencontré le problème d'impossibilité de modifier la bordure.

    J'ai donc effectué des recherches et j'ai trouvé une solution sous forme d'un projet VS2003.

    J'ai chargé ce projet, effectué la conversion, puis j'ai modifié les propriétés du projet pour le faire passer en framework 3.5 afin d'avoir les mêmes conditions que mon projet actuel.

    J'ai en outre vérifié que les librairies System, Drawing et Windows pointaient bien vers le même répertoire et étaient bien de la même révision.

    J'ai ensuite simplifié le code trouvé en exemple pour ne conserver que le détail qui m'intéressait. Ce code fonctionnait toujours.

    Or, en l'examinant, je me suis rendu compte avec stupéfaction qu'il opérait exactement comme je tentais de le faire, mais que ça fonctionnait dans ce projet mais pas dans le mien.

    Avant de me décider à avaler une boîte d'anti-dépresseurs, j'ai alors placé en mode design sur la form de ce projet un simple TextBox ordinaire, et j'ai fait de même sur ma propre form.

    Au design, les deux TextBox se présentent strictement de la même façon (logique c'est sensé être les mêmes) : même apparence, mêmes propriétés par défaut.

    Mais, à ma grande surprise, lorsque j'ai ouvert les deux forms en mode run, j'ai constaté que sur ma form mon TextBox se présentait comme ceci :



    Donc en 2D avec une simple bordure bleue.

    Alors que sur la form de l'exemple trouvé, le TextBox apparaît en relief, comme ceci :



    ce qui explique mes déboires, parce que le TextBox de l'exemple converti, avec BorderStyle en 3D donne bien un TextBox 3D, alors que dans ma solution le textBox n'est jamais un vrai 3D.

    Et avec "le mien", impossible d'agir sur la bordure car cette bordure se trouve en fait hors de la zone graphique du contrôle (si je dessine une bordure dans OnPaint en utilisant le point d'origine 0,0 , la bordure se trouve à l'intérieur de la bordure d'origine), ce qui n'est pas le cas de l'exemple trouvé si on choisis le BorderStyle "single".

    Vu que depuis le début j'avais constaté que la bordure 3D des TextBoxes n'était jamais 3D, j'avais pensé qu'il s'agissait d'un choix délibéré de Microsoft de refuser l'affichage 3D pour les TextBoxes, mais me revoici maintenant en présence d'un projet où ils sont bel et bien 3D.

    Quelqu'un peut m'expliquer pourquoi je me retrouve en présence de deux TextBoxes différents, pourtant placés à partir de la même barre d'outils VS2008 et malgré des références de librairies qui semblent identiques?

    J'avoue ne plus rien comprendre.

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Salut,

    ça aurait pas un rapport avec Application.EnableVisualStyles(); ? Je t'invite à vérifier si par hasard cette méthode est appelée dans un cas et pas dans l'autre, ce qui serait pas étonnant si ton code vient initialement de .Net 1.1.
    ಠ_ಠ

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Oui, super

    La première ligne du main de la version "non 3D", c'est la ligne que tu indiques.

    Si je supprime cette ligne, tous mes contrôles deviennent 3D (textbox,onglets, etc).

    J'ai encore appris quelque chose.

    Merci,
    Claude

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/02/2010, 12h09
  2. StringGrid sort
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/10/2004, 21h46
  3. xsl:sort
    Par Pierre63 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 03/07/2003, 12h37
  4. JBuilder 7 personnal sort à chaque save
    Par Hannouz dans le forum JBuilder
    Réponses: 4
    Dernier message: 17/12/2002, 22h53
  5. [VB6] [Interface] ScrolBar & TextBox
    Par DarkVader dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/10/2002, 18h40

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