2009-07-21 7 views
18

Lorsque j'ouvre un formulaire dans Visual Studio 2005 (C#), le concepteur redimensionne automatiquement le formulaire et déplace/redimensionne les contrôles sans toucher le concepteur du tout. Le fichier source est modifié et lorsque je ferme le concepteur, je suis invité à enregistrer le fichier * .cs. J'ai essayé de regarder dans les options de studio visuel sans aucun succès. des idées? configuration de studio visuel ou quelque chose? merci, Talvisual designer 2005 déplace les contrôles et redimensionne le formulaire

Répondre

3

J'ai trouvé un travail.

Je ne sais pas ce qui se passe derrière mais j'ai changé mes propriétés d'affichage. et ça marche bien. voici la séquence: display propertis-> paramètres onglet-> avance. dans le dialogue avancé j'ai changé le "DPI Settings" de Grand (120 dpi) à Normal (96 dpi)

+3

c'est horrible que le concepteur IDE est affecté par votre écran DPI . Désolé d'entendre ça. :( –

+2

Parmi les nombreuses horreurs perpétuées par Windows, les «paramètres DPI» est l'un des pires.Ce paramètre provoque plus de problèmes avec plus d'applications que presque tout ce que j'ai vu. – Stewbob

1

Ceci est celui que vous devriez vivre avec. Même dans VS2008 de telles choses arrivent de temps en temps. Cela dépend principalement du contenu du formulaire (contrôles, positions, etc.), et il n'y a pas d'option dans VS pour désactiver un tel comportement. Lorsque vous ouvrez votre formulaire dans le concepteur, vs runtime reconstruit l'apparence visuelle à partir du code derrière. Et parfois, il a fait des changements en ce moment. De même, lorsque vous ajoutez simplement un contrôle à un formulaire, le concepteur reconstruit entièrement les fichiers codebehind et les fichiers de ressources. C'est un problème bien connu, et il semble que MS ne le résoudra pas, car ils évoluent dans la direction de WPF.

donc plusieurs points pour vous simplifier la vie:

  1. Déplacer vers VS2008, concepteur était plus cohérent, mais encore les contrôles dans brouillent .designer.cs fichier
  2. Placez votre code dans l'un des référentiels source, donc si vous avez sauvé accidentellement un tel formulaire, vous pouvez le restaurer à partir du référentiel.
+0

merci arbiter. -bien, passer à 2008 n'est pas pertinent pour mon projet (implique trop de code pour le moment). – tal

+0

VS2005-> La migration de 2008 n'est pas du tout problématique. –

+5

Ceci est encore un problème dans VS2010 – ryantm

10

J'ai travaillé sur ce problème pour la plupart d'aujourd'hui et j'ai trouvé des choses intéressantes: La source principale de la le problème semble s'appuyer sur l'ancrage. Si j'utilise l'ancrage pour positionner mes contrôles, au lieu d'ancrer, mes problèmes semblent disparaître. J'ai trouvé quelques articles de blog datant de 2003 (!), Qui détaillent comment vous pourriez utiliser l'ancrage au lieu d'ancrer, et expliquent comment l'ancrage peut casser le concepteur de Windows Forms. Il semble que ce problème pourrait avoir plus de 7 ans!

Voici les messages:

+1

Les contrôles dans ma forme étaient constamment biaisés par le concepteur - le problème existe toujours dans VS 2012. Passer à l'amarrage semble l'avoir arrêté. – pettys

+2

Ugh, encore un problème dans VS2013, merci pour cela, il a vraiment aidé. – heisenberg

7

Cela est dû à AutoScaleMode -property. Vos formulaires ont probablement été conçus avec des paramètres DPI ou Police différents de ceux que vous avez maintenant dans les paramètres d'affichage Windows. AutoScaleMode -property a 4 différentes valeurs possibles: Dpi, Font, Inherit ou None. En mode Dpi ou Font, vos formulaires et contrôles seront automatiquement redimensionnés en fonction des paramètres d'affichage de Windows.

Ainsi, définissez la propriété AutoScaleMode sur None dans tous vos formulaires et contrôles et ils ne seront plus automatiquement redimensionnés. Essayez de concevoir vos formulaires afin de laisser suffisamment d'espace dans chaque contrôle pour que le texte puisse tenir, même si la taille du texte est fixée à 125%.

+0

Semble l'avoir fait pour moi. J'ai dû éditer le * Form.Designer.cs pour changer ceci.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; , et supprimez this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F); (les deux lignes sont ensemble dans le fichier .Designer.cs) – Jimmy

0

Régler le format Min et Max paramètres de taille à la taille actuelle a été un bon travail pour moi. Cela a empêché VS de le redimensionner.

2

Avait le même problème avec les contrôles ancrés haut, gauche et droite dans TabControls complexes. Le concepteur de formulaires de studio visuel augmentait la largeur de tous les contrôles imbriqués chaque fois que j'ouvrais le formulaire.

J'ai trouvé une solution de contournement simple grâce à this post. J'ai simplement ajouté un panneau à chaque onglet et défini leur propriété de quai à remplir. Tous les contrôles existants dans les onglets ont été déplacés à l'intérieur de ces panneaux. Cela fonctionne, même si les contrôles sont ancrés en haut, à gauche et à droite.

Works au moins pour Visual Studio 2013 et 2015.

-2

J'ai eu ce problème aussi. Chaque fois que j'ai ouvert le concepteur, chaque boîte avec l'ancre "droite" a été déplacée d'environ 20 pixels vers la gauche. De plus, le bas de chaque case avec l'ancre "left" était d'environ 200 pixels en dehors du formulaire.

Cette forme a beaucoup de contrôles et ne devrait pas rétrécir sur les plus petits écrans, donc elle a été placée à autoscroll, le formulaire lui-même était plus petit dans le concepteur que la taille minimum montrée (historiquement ...). Je viens de définir la taille à la taille minimale afin qu'aucune barre de défilement n'apparaisse dans le concepteur et les ancres ont fonctionné comme prévu sans visser les postitions.

J'ai lu le premier message de la réponse de ryantm qui m'a conduit à la solution. Apparemment, il a quelque chose à voir avec la commande. Net exécute des événements tels que la définition de la taille d'un formulaire.

0

J'avais une forme triviale avec peu de contrôles, où OK et Annuler en bas étaient décalés dès que le formulaire a été ouvert dans le concepteur VS2013. Le même comportement a été observé dans VS2015.

La réponse acceptée de DPI n'a pas résolu le problème pour moi, et il n'y avait aucun problème sur la taille de la forme/du remplissage/des marges.

La suppression des contrôles qui sont décalés et les ajouter de nouveau dans la forme résolu le problème pour moi, comme suggéré par ptutt ici: Visual Studio designer moving controls and adding grid columns when form is opened

Même si je comprends la suggestion de ryantum et des liens d'utilisation docking [panneaux], comme mentionné également dans le lien ci-dessus avec le blog de Roland poster https://weblogs.asp.net/rweigelt/28984, avec quelque chose de si trivial je préfère juste le faire disparaître avec suppression/ajout.

0

J'ai trouvé le verrouillage des contrôles du menu de format était un solution simple et efficace. VS2013

-1

J'ai eu ce problème avec VS 2015. J'ai utilisé des panneaux de quai avec les contrôles qui se déplaçaient de façon inattendue comme leurs enfants. Par défaut, les contrôles seront alignés sur la gauche, mais vous pouvez changer l'orientation. Mes boutons ont cessé de bouger.

Questions connexes