Dans .NET WinForms, comment créer un formulaire sans bordure avec une hauteur inférieure à 34?

J’utilise Visual Studio et j’ai créé une nouvelle application Windows en C #, qui utilise WinForms.

J’ai pris le formulaire créé avec le projet et défini la propriété .FormBorderStyle sur None .

J’ai ensuite réglé la hauteur du formulaire à 18.

Sur le concepteur, tout va bien, il apparaît en tant que hauteur = 18.

Mais quand je le lance, la hauteur augmente et passe à 34 pour une raison quelconque.

J’ai besoin que la taille du formulaire soit 18 ans, pas 34 ans ..

Que puis-je faire pour qu’il atteigne la hauteur que je veux?

Je vous remercie

Winforms applique une contrainte de taille minimale à un formulaire en gardant la barre de légende utilisable. Même si le formulaire n’en a pas, une bizarrerie que la plupart des programmeurs appellent “bug”.

Vous pouvez toutefois toujours remplacer la taille finale en définissant la propriété ClientSize dans un gestionnaire d’événements pour l’événement Load. Méfiez-vous de la nécessité de redimensionner la fenêtre sur une machine avec un paramètre de résolution vidéo différent, vous ne voulez pas coder en dur la taille. Le meilleur moyen est de le redimensionner en fonction de la position d’un contrôle. Par exemple:

protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.ClientSize = new Size( this.ClientSize.Width, OKButton.Bottom + OKButton.Margin.Bottom ); } 

Avec l’hypothèse qu’un contrôle nommé OKButton est celui du bas. Tweak si nécessaire.