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

VB.NET Discussion :

Comportement étrange VS2013 : boutons qui remontent de 22 pixels


Sujet :

VB.NET

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut Comportement étrange VS2013 : boutons qui remontent de 22 pixels
    Hello,

    J'ai commencé à creuser ce problème sur le forum Visual Studio mais nous sommes à cours de pistes alors je viens chercher de nouvelles idées par ici.

    En résumé, sur deux formulaires, lorsque je les ouvre en mode design, VS fait remonter les boutons qui sont dans le coin inférieur droit du formulaire de 22 pixels.

    On le voit très bien sur l'image en pièce-jointe.

    Après discussions et tests, il apparaît que ce serait, à priori, un problème au niveau de l'ancrage (ou bien n'est-ce qu'un symptôme ?). Vu que ces boutons sont dans le coin inférieur droit et qu'ils doivent le suivre si leur conteneur (le formulaire) est redimensionné, l'ancrage est défini sur Bottom, Right. J'ai essayé plein de combinaisons d'ancrage et il n'y que si Top est définit (seul ou avec d'autres) que VS ne remontent pas les boutons.

    J'ai bien sûr faire le test avec un nouveau formulaire et le phénomène ne se produit bien sûr pas...
    Le fichier designer a l'air clean.

    Je suis donc à la recherche de nouvelle piste pour résoudre ce comportement suspicieux.

    Quelqu'un a-t-il déjà vu cela ? Une idée de ce qui produit cela ?

    Merci d'avance.
    Images attachées Images attachées  
    Kropernic

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Salut,

    L'ancrage est très souvent en conflit avec la propriété Dock... Et sur des contrôles placés librement ça fait des comportements bizarres.

    Mon avis : ne pas trop toucher à ces deux propriétés (ou remettre par défaut), comme ça les contrôles restent à leur places fixe.

    Et sinon, le fameux TableLayoutPanel, avec un ancrage Left-Right qui a pour effet de centrer le contrôle horizontalement et verticalement dans sa cellule.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    J'aurais p-e du effectivement utiliser un tlp ici aussi. Mais le formulaire était tellement basique que bon...

    Franchement, un label, une combobox et 2 boutons, je pensais pouvoir me passer d'un tlp pour arranger le design...
    Kropernic

  4. #4
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Moi je le fait systématiquement... Je trouve pas que ça me prenne plus de temps, car au final je m'occupe plus de savoir on sont placées les choses..., les Dock les Anchors, si c'est aligné ou pas.

    Mais si tu remets Dock et Anchor à leurs valeurs pas défauts, ça devrait aller.
    (Vérifie les margin tout de même, si les valeurs sont énormes.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Margin par défaut sur 3;3;3;3...

    Je peux filer les fichiers du formulaire pour tester chez toi si tu veux ^^.

    EDIT : les voilà en pièce-jointe.
    Fichiers attachés Fichiers attachés
    Kropernic

  6. #6
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Ouais vas y !
    Un petit défi du vendredi !
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Ouais vas y !
    Un petit défi du vendredi !
    Elles sont en pièce-jointe du message précédent
    Kropernic

  8. #8
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Comme prévu, si tu mets l'ancrage a défaut (Top-Left), que tu enregistre le formulaire, à l'ouverture, tout reste en place.

    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  9. #9
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Oui, ça j'avais remarqué aussi lol.

    Sinon, ça te remonte les boutons chez toi aussi ?

    Mais la grande question est : Pourquoi cela produit sur ce formulaire et pas sur un nouveau en plaçant les boutons de la même manière (avec le même ancrage) ?
    Kropernic

  10. #10
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Oui mais, tu n'utilise pas la propriété Anchor comme il faut, quoiqu'il arrive.

    Anchor permet d'ancrer un control à son contenant (une form ici).

    C'est à dire : si tu agrandit la fenêtre, et que Anchor est top left, le bouton restera a la même distance des bords haut et gauche.
    Si tu fais la même avec bottom right, au redimensionnement, le bouton se deplacera tout seul en bas en droite.

    OR, tu as une fenêtre non redimensionnable : maxSize et MinSize sont égaux...

    Donc déjà, l'utilisation de cette propriété est erronée.

    Après je veux bien qu'on résolve le bug VS... Mais comme les propriétés sont à la base contradictoire... le résultat l'est tout autant.

    EDIT: le bug est bien lié aux deux points : Anchor + non redimensionnement de la fenêtre... C'est comme ça qu'on peut reproduire.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  11. #11
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Eureka !! (enfin je crois)

    Suite à ta remarque, j'ai fait le test de retirer le maxsize et d'agrandir.

    Je sauve, je ferme et j'ouvre et tadaaaaaaa, les boutons ne bouge pas.

    Je retrécis le formulaire jusqu'à la valeur de minsize, je ferme et j'ouvre et que vois-je ! Les boutons n'ont pas bouger mais le formulaire est plus haut de 22 pixels !

    On passe donc à l'étape suivante qui est de trouver pourquoi VS veut agrandir ce formulaire de 22 pixels.

    J'ai d'abord pensé qu'il y avait p-e définit quelque part une taille minimal mais l'autre formulaire sur lequel ce phénomène se produit est plus grand... Ce n'est donc pas cela...

    N.B. : Cependant, tu as raison, avec une fenêtre non redimensionnable, l'ancrage Bottom, Right ne sert à rien... C'est juste une habitude. Un bouton qui doit être en bas à droite doit avoir l'ancrage correspondant. Qu'importe si on peut redimensionner son conteneur ou non. Si un jour on change d'avis et qu'on peut, au moins ce sera déjà bon et en attendant, cela ne devrait pas poser de problème.
    Kropernic

  12. #12
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Peut être parce que la propriété AutoScaleMode est à Font

    (c'est à dire, qu'il redimensionne la fenêtre et les contrôles en fonction de la police).
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  13. #13
    Membre actif Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 296
    Points
    296
    Par défaut
    les 22 pixels semble être la taille du bord supérieur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim TitlebarHeight As Integer = System.Windows.Forms.SystemInformation.CaptionHeight '(21 pixel chez moi)

  14. #14
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Peut être parce que la propriété AutoScaleMode est à Font

    (c'est à dire, qu'il redimensionne la fenêtre et les contrôles en fonction de la police).
    *plouf*

    J'ai changé cette propriété sur None et testé. Ca bouge toujours ^^.

    Mais on approche du but je pense...

    Citation Envoyé par ShadowTzu Voir le message
    les 22 pixels semble être la taille du bord supérieur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim TitlebarHeight As Integer = System.Windows.Forms.SystemInformation.CaptionHeight '(21 pixel chez moi)
    Ces 22 pixels m'ont aussi fait penser à cela. Mais y a pas de raison... Pourquoi sur un formulaire neuf, cela ne se produit pas... Je n'ai rien de spécial au formulaire en question.

    Les actions que j'ai opérées sur ce formulaire sont très limitées vu le nombre de contrôles qu'il possède...

    Il est dur ce défi du vendredi
    Kropernic

  15. #15
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    I got it man !

    C'est à cause de MinimuSze.

    A partir du moment où il est mis, j'ai l'impression que le Designer tente mettre une taille de base du formulaire, peut être qu'il calcule ce qu'il faut pour qu'on puisse réduire la form sans que les controles se marche dessus...

    De toute façon, VS prends par défaut les Size... puis il recalcule tout ça en fonction des propriétés, minsize, autoscalemode....
    Tout comme le positionnement, avec les margins, dock, anchor etc...

    Il nous laisse faire, puis il refait à sa sauce avec les propriétés.

    Et en l’occurrence, ici il vaut mieux utiliser FormBorderStyle = fixed qq chose , si tu ne veux pas qu'on redimensionne.

    Toujours l'utilisation des bonnes propriétés. Là, tu utilise minzize et maxsize pour dire de ne pas redimensionner... Effet de bord.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  16. #16
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Suis pas sûr d'avoir compris.
    Kropernic

  17. #17
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    C'était juste une idée.

    Mais j'ai trouvé peut être.

    La propriétés Size, concerne la TOTALITE de la taille de la fenêtre (barre de menu compris).

    Tandis que MinimumSize concerne l'intérieur de la fenêtre, donc quand tu lui dis 10 *10, lui il recalcule la Size de la fenêtre : MinimumSize + taille du menu (22px).
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  18. #18
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Bonjour Kropernic

    je teste avec le fichier et j'ai le même résultat le bouton "suivant" grimpe vers le haut
    et même si je place le bouton autrepart ll change sa position vers le haut
    Je suis sur vs 2010

    Je pense avoir trouvé

    si on definit le anchor as top left la position reste fixe

  19. #19
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Oui, ça avait été trouvé aussi cela.

    Maintenant, remets anchor comme c'était et mets MaxSize à 0;0.

    Tu verras que ce ne sont pas les boutons qui remontent mais le formulaire qui change de taille.

    P.S. : C'est sympa d'essayer d'aider mais prend au moins la peine de lire ce qui a déjà été dit.
    Kropernic

  20. #20
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    T'as vu mon post sur le MinimumSize de la fenêtre, qui ne prends pas en compte la taille de la Barre de Titre en haut ?

    En gros tu resizes ton Formulaire à 50px*50px
    Puis tu lui dis : je veux que l'intérieur fasse 50px * 50 px... (avec le minimum size)

    Donc lui, il te mets une Size de ta Form à 50px (+22px) * 50 px pour prendre en compte cette barre.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

Discussions similaires

  1. [VS2013] boutons qui remontent
    Par Kropernic dans le forum Visual Studio
    Réponses: 8
    Dernier message: 27/02/2015, 10h36
  2. Bouton au comportement étrange
    Par cypher.sephiroth dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 29/07/2009, 13h41
  3. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54
  4. Réponses: 2
    Dernier message: 26/09/2003, 16h49
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

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