2 votes

Mise à l'échelle automatique des contrôles enfants lorsqu'un formulaire est maximisé

Existe-t-il un moyen de faire en sorte que tout soit automatiquement mis à l'échelle sur un windowsFrom lorsque l'on maximise l'écran ou que l'on change de résolution.

J'ai trouvé cette méthode pour obtenir une échelle manuelle correcte, mais lorsque je change de résolution, je dois la modifier à chaque fois.

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;

3voto

Cody Gray Points 102261

Il n'y a pas de simple interrupteur sur lequel vous pouvez appuyer pour que cela se fasse automatiquement. La mise à l'échelle automatique permet de résoudre un problème très différent. Vous devez concevoir votre formulaire et ses contrôles en gardant cet objectif à l'esprit.

En particulier, la meilleure façon de procéder est d'utiliser un fichier TableLayoutPanel contrôle docked pour "remplir" l'ensemble de votre jeu de formulaires son Dock propriété a DockStyle.Fill . Cela deviendra essentiellement la "grille de présentation" que vous utiliserez pour disposer les contrôles enfants que vous souhaitez voir apparaître sur le formulaire.

Ensuite, placez chacun de vos contrôles réguliers à l'intérieur des "cellules" de ce fichier. TableLayoutPanel contrôle. Régler le Anchor propriété des contrôles enfants pour indiquer comment vous souhaitez qu'ils s'agrandissent lorsque le formulaire est développé (ou rétréci). Par exemple :

  • Si vous souhaitez qu'un contrôle s'agrandisse horizontalement lorsque le formulaire est maximisé, vous devez l'ancrer aux bords gauche et droit de la cellule qui le contient.
  • Pour le faire croître verticalement, vous devez l'ancrer aux bords supérieur et droit de la cellule.
  • Si vous l'ancrez à tous il s'agrandira en se développant dans toutes les directions.
  • Si vous l'ancrez à aucun des bords, le contrôle gardera la même taille et se centrera simplement à l'intérieur de la cellule.

Il faut pour cela un peu de de l'eau, de l'air et de l'énergie. Par exemple, vous devrez parfois fixer le ColumnSpan et/ou RowSpan des contrôles à l'intérieur de la fenêtre TableLayoutPanel contrôle pour s'assurer qu'ils sont disposés comme vous le souhaitez, en particulier par rapport aux autres contrôles affichés sur votre formulaire.

Mais c'est à peu près le seul moyen de faire ce que vous souhaitez, et c'est aussi le seul moyen de faire ce que vous voulez. fait fonctionne très bien une fois que vous l'avez mis en place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X