2010-06-25 6 views
6

Je travaille sur un grand projet C# avec beaucoup de winforms, même si vous pouvez redimensionner le formulaire, les éléments du formulaire ne sont pas mis à l'échelle.Meilleure façon de redimensionner les winforms?

Comment puis-je redimensionner les éléments de formulaire (tels que datagridview, zone de texte, etc.) lorsque l'utilisateur modifie la taille du formulaire.

Presque toutes les formes sous-classes à partir d'un formulaire spécifique, donc s'il y a quelque chose que je peux faire dans la classe de base, ce serait génial.

Répondre

15

Vous devez définir les propriétés Anchor et Dock sur les contrôles des formulaires.

La propriété Anchor contrôle quels bords d'un contrôle sont "liés" ou "liés" aux bords correspondants de son formulaire.
Par exemple, si vous définissez Anchor à Bottom, la distance entre le bord inférieur du contrôle et le bas de son parent ne changera pas, de sorte que le contrôle descendra lorsque vous redimensionnez le formulaire.
Si vous définissez Anchor à Top | Bottom, le contrôle sera redimensionné verticalement lorsque vous redimensionnez le formulaire.

Pour redimensionner un contrôle avec le formulaire, définissez Anchor sur les quatre côtés ou définissez Dock sur Fill.

+2

C'est assez intuitif une fois que vous commencez à l'utiliser. Par exemple, si vous avez des boutons OK/Annuler dans le coin inférieur droit de votre boîte de dialogue, définissez la propriété 'Anchor' sur Bas et Droite pour les faire glisser correctement sur le formulaire. –

+0

Donc, je dois le faire sur une base par formulaire? – Malfist

+0

@Malfist: Oui; par formulaire et par contrôle. .Net ne découvrira pas par magie quels contrôles sont censés s'étirer et quels contrôles aligner de quels côtés. – SLaks

5

Utilisez les propriétés Ancrage et Dock.

L'ancrage vous permet d'épingler des côtés spécifiques du contrôle sur les côtés du contrôle parent. Le Dock liera le contrôle entier à un côté du contrôle parent ou il peut être défini pour remplir le contenu du contrôle parent.

Vous avez généralement juste besoin de définir l'ancre en bas et à droite du contrôle parent, mais devient plus difficile lorsque vous avez des contrôles côte à côte, puis vous devez redimensionner manuellement les contrôles sur l'événement OnResize forms pour les obtenir échelle naturellement ensemble.

Questions connexes