J'ai remarqué que certaines applications modifiaient leur position de contrôle pour les ajuster autant que possible dans la résolution. Si la fenêtre est maximisée, elles se règlent de manière à ce que, dans l'ensemble, l'interface graphique ait l'air équilibrée. possible de créer ou d’implémenter cette fonctionnalité dans Visual studio 2010 C #?
Utilisez des combinaisons de celles-ci pour obtenir le résultat souhaité:
Définissez la propriété Anchor
sur Aucune, les contrôles ne seront pas redimensionnés, ils ne font que déplacer leur position.
Définissez la propriété Anchor
sur Top + Bottom + Left + Right, les contrôles seront redimensionnés mais ils ne changeront pas leur position.
Définissez le Minimum Size
du formulaire sur une valeur appropriée.
Définissez la propriété Dock
.
Utilisez l'événement Form Resize
pour changer ce que vous voulez
Je ne sais pas comment la taille de la police (étiquette, zone de texte, liste déroulante, etc.) sera affectée dans (1) - (4), mais elle peut être contrôlée dans (5).
float widthRatio = Screen.PrimaryScreen.Bounds.Width / 1280;
float heightRatio = Screen.PrimaryScreen.Bounds.Height / 800f;
SizeF scale = new SizeF(widthRatio, heightRatio);
this.Scale(scale);
foreach (Control control in this.Controls)
{
control.Font = new Font("Verdana", control.Font.SizeInPoints * heightRatio * widthRatio);
}
..et pour détecter un changement de résolution afin de le gérer (une fois que vous utilisez l'amarrage et l'ancrage comme suggéré par SwDevMan81), utilisez l'événement SystemEvents.DisplaySettingsChanged in Microsoft.Win32 .
dans l'événement de chargement de formulaire, ajoutez cette ligne
this.WindowState = FormWindowState.Maximized;