Ce que j'essaye d'accomplir est un formulaire qui a un bouton qui fait que le formulaire soit «déroulant» et devienne plus grand, affichant plus d'information. Ma tentative actuelle est la suivante:Comment limiter la hauteur d'un Sytem.Windows.Form à une valeur exacte?
private void btnExpand_Click(object sender, EventArgs e)
{
if (btnExpand.Text == ">")
{
btnExpand.Text = "<";
_expanded = true;
this.MinimumSize = new Size(1, 300);
this.MaximumSize = new Size(int.MaxValue, 300);
}
else
{
btnExpand.Text = ">";
_expanded = false;
this.MinimumSize = new Size(1, 104);
this.MaximumSize = new Size(int.MaxValue, 104);
}
}
Qui fonctionne très bien! Sauf pour un petit détail ... Notez que les valeurs de largeur sont supposées pouvoir aller de 1 à int.MaxValue? Eh bien, en pratique, ils vont de this.Width à int.MaxValue, à savoir. vous pouvez rendre le formulaire plus grand, mais jamais plus petit. Je ne sais pas pourquoi cela se produirait. Quelqu'un a des idées? Pour l'enregistrement: J'ai également essayé un gestionnaire Form.Resize qui définissait la Hauteur du formulaire à la même valeur en fonction de la valeur de l'extension boolean _expanded, mais j'ai fini par avoir le même effet secondaire. PS: J'utilise .NET 3.5 dans Visual Studio 2008. D'autres solutions sont les bienvenues, mais c'est ce que je pensais de la façon dont cela «devrait» être fait et comment j'ai essayé de le faire. Editer: Semble que le code fonctionne, selon la réponse aux réponses acceptées. Si quelqu'un d'autre a des problèmes avec ce problème particulier, vérifiez la propriété AutoSize de votre formulaire, elle devrait être FAUX, pas VRAI. (Ceci est la valeur par défaut, mais je l'ai activé car j'utilisais le formulaire et une étiquette avec autosize également pour afficher les informations de débogage plus tôt)
Pour une raison quelconque AutoSize a été mis à vrai sur le formulaire et qui interférait avec le MaximumSize et MinimumSize ... Huh. de toute façon :) –
Bien sûr, non problème. =) –
En tant que sidenote supplémentaire, je crois que cela signifie d'utiliser ie. new Size (0, 0) pour représenter no min/max, mais je ne pense pas que le code ait été conçu pour gérer les valeurs 0 individuelles. Dommage, mais voilà. –