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

Visual Studio Discussion :

[VS2013] boutons qui remontent


Sujet :

Visual Studio

  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 [VS2013] boutons qui remontent
    Hello,

    J'ai un comportement bizarre avec VS 2013 par rapport à des boutons que je place dans le bas de certains formulaires.

    Nom : moving_buttons.png
Affichages : 83
Taille : 10,0 Ko

    C'est assez flagrant sur l'image ci-dessus. Les boutons deux boutons sont bien sûr normalement plus bas. VS les déplaces lorsque j'ouvre le formulaire en mode design depuis l'explorateur de solution. D'ailleurs, on peut voir les actions qu'il fait dans la liste des actions qu'il est possible d'annuler. Il s'agit de deux fois (dans ce cas-ci) de Change lebouton.Location.

    Je n'ai pas le souvenir d'avoir déjà rencontré ce genre de comportement et c'est assez ch**nt car si je ne fais pas gaffe (ici ça va car on ne voit que ça sur un si p'tit formulaire mais ça arrive sur d'autres plus grand), je fais ce que je voulais faire, je compile et hop, c'est sauvegardé et livré au client...

    Ca le fait pas quoi...

    Si je ne fais qu'afficher le code depuis l'explorateur de solution, là ça va, il ne modifie pas le fichier designer. Par contre, si depuis le code j'affiche le design (shift+F7), rebelote, VS déplace les boutons...

    C'est grave docteur ?
    Quelqu'un a déjà vu cela et à une idée de comment guérir VS ?

    Merci d'avance.
    Kropernic

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    T'as regardé le fichier form.Designer.cs ? (enfin son équivalent VB)
    Y'a peut-être un conflit dans des propriétés de positionnement.
    Tu peux aussi vérifier qu'il n'y a pas de handler inattendu sur des event Load.
    Plus je connais de langages, plus j'aime le C.

  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
    Citation Envoyé par jopopmk Voir le message
    Salut,

    T'as regardé le fichier form.Designer.cs ? (enfin son équivalent VB)
    Y'a peut-être un conflit dans des propriétés de positionnement.
    Tu peux aussi vérifier qu'il n'y a pas de handler inattendu sur des event Load.
    Je n'ai pas d'event load.

    Qu'entends-tu par
    Y'a peut-être un conflit dans des propriétés de positionnement.
    Bref, dans le doute, j'ai ouvert le fichier designer, j'ai trouvé la partie qui parle de btnCancel et la propriété Location n'est assignée qu'une seule fois (j'ai fait une recherche pour être sûr qu'elle ne l'était pas aussi ailleurs). Voici le code. Perso, je ne vais (presque) jamais voir ce fichier. Du coup, j'ignore s'il y a quelque chose d'anormal dans ce snippet.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            '
            'btnCancel
            '
            Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
            Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
            Me.btnCancel.Location = New System.Drawing.Point(31, 40)
            Me.btnCancel.Name = "btnCancel"
            Me.btnCancel.Size = New System.Drawing.Size(75, 23)
            Me.btnCancel.TabIndex = 2
            Me.btnCancel.Text = "Annuler"
            Me.btnCancel.UseVisualStyleBackColor = True

    Une fois le bouton remis en place, la coordonnée Y du bouton est 62. VS remonte donc les boutons de 22 pixels (aussi 22 pixels dans l'autre formulaire ou cela se produit). Ce nombre a-t-il une signification particulière ?
    Kropernic

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Par "propriétés en conflit" j'entends par exemple "un positionnement manuel (top, left)" qui serait écrasé par "un positionnement automatique (ex. Dock)".
    J'avoue que même dans ce genre de conflit j'ai du mal à imaginer le comportement que tu décris, mais savait-on jamais.

    Et en exécution les boutons ne sont pas déplacés ?
    Après il te reste la bonne vieille technique du "from scratch", reprendre depuis le début et voir quand l'erreur apparait.
    Plus je connais de langages, plus j'aime le C.

  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
    Citation Envoyé par jopopmk Voir le message
    Par "propriétés en conflit" j'entends par exemple "un positionnement manuel (top, left)" qui serait écrasé par "un positionnement automatique (ex. Dock)".
    J'avoue que même dans ce genre de conflit j'ai du mal à imaginer le comportement que tu décris, mais savait-on jamais.
    Je ne comprends vraiment pas non plus... C'est pour ça que je viens ici ^^.

    Citation Envoyé par jopopmk Voir le message
    Et en exécution les boutons ne sont pas déplacés ?
    Même si je déplaçais les boutons via le code pendant l'exécution, ils doivent toujours rester à la même place dans le designer ^^.

    Citation Envoyé par jopopmk Voir le message
    Après il te reste la bonne vieille technique du "from scratch", reprendre depuis le début et voir quand l'erreur apparait.
    J'ai testé en prenant un nouveau formulaire, j'ai mis des boutons dans le bas, j'ai compilé (donc sauvegardé), j'ai fermé le formulaire et rouvert ensuite. Résultat : les boutons ne bougent pas .
    Kropernic

  6. #6
    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'ai trouvé la cause du problème.

    Ces boutons sont ancrés en Bottom, Right. C'est normal, ils doivent suivre le coin inférieur droit du formulaire si on le redimensionne.

    Si je change l'ancrage et que je remets Top, Left, alors ils ne bougent plus !

    Bon, comme résolution, je pourrais changer l'ancrage dans le constructeur du formulaire mais bon, c'est quand même complètement con .

    Du coup, j'ai fait quelques tests. Il n'y a que si je mets Top (avec ou sans autre ancrage additionnel) que les boutons ne remontent pas...

    Je pige pas...
    Kropernic

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Peut-être que t'as des méga-padding dans le conteneur qui a les boutons ?
    J'ai pas vérifié la réelle influence de cette propriété et son interaction avec l'ancrage des contenus, mais ça sonne bien
    Plus je connais de langages, plus j'aime le C.

  8. #8
    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
    Je n'utilise jamais le padding...

    C'est un truc de fou quand même ce machin-là.

    Je vais poser la question également sur d'autres sous-forum .NET. Peut-être qu'il y aura des gens qui auront une idée...
    Kropernic

  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
    Nouvel élément de réponse découvert ici.

    VS ne déplace pas les boutons contrairement à ce qu'il indique. En fait, il agrandit la hauteur du formulaire de 22 pixels, puis comme le formulaire à une taille maximale, il se fait redimensionner et les boutons suivent le mouvement à cause de l'ancrage.

    Reste à trouver pourquoi VS augmente la hauteur du formulaire de 22 pixels...
    Kropernic

Discussions similaires

  1. Réponses: 26
    Dernier message: 03/03/2015, 15h45
  2. Api Win32 : boutons "qui bougent" au passage de la
    Par Spartan03 dans le forum Windows
    Réponses: 9
    Dernier message: 06/06/2005, 23h52
  3. Réponses: 10
    Dernier message: 10/06/2004, 16h20
  4. Réponses: 2
    Dernier message: 26/09/2003, 16h49

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