Gestion dynamique des tailles des Forms

sylvain_ressigeac Messages postés 1 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 26 janvier 2009 - 26 janv. 2009 à 17:05
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 31 janv. 2009 à 15:33
Bonjour,
Je voudrais fixer une taille quand je clique sur l'icone agrandissement et une autre taille sur l'icone retour etat normal (WindowStateNormal).
Voilà ce que j'ai fais :
private

void xxxx_SizeChanged(
object sender,
EventArgs e){

Rectangle rect =
Screen.GetWorkingArea(
this);

switch (this.WindowState){

case
FormWindowState.Minimized:

break;

case
FormWindowState.Maximized:
if
((control.Size.Width != rect.Width || control.Size.Height != rect.Height) )

{

      control.Size =

new
Size(rect.Width, rect.Height);

}

break;

case
FormWindowState.Normal:

if ((control.Size.Width != 600 || control.Size.Height !=500) )

{

       control.Size = new Size(600, 500);

}

break;

}

Donc lorsque j'ai détecté un chagement de taille, je redéfinit la taille si elle n'est pas correcte.
ça fonctionne  pour FormWindowState.Maximized, mais pas pour FormWindowState.Normal.
Le soft tourne en boucle sur "control.Size = new Size(600, 500);"

lorsque l'évènement survient, on dirait qu'il me refuse la modification de taille.

Je vous remercie par avance pour l'aide que vous allez m'apporter.

1 réponse

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
31 janv. 2009 à 15:33
Salut,

Si "control" est justement le contrôle sur lequel l'évènement est géré, ou si sa taille est liée (Anchor, Dock etc) à celle du contrôle en question, tu changes la taille dans le gestionnaire d'évènement lié à l'évènement qui te notifies un changement de taille, donc tu pars forcément dans une boucle plus ou moins sans fin.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous