Cas quand une fenêtre obtient agrandie/onu maximisée
Est-il un événement qui est déclenché lorsque vous agrandissez une Forme ou de l'onu-l'optimiser?
Avant de vous dire Resize
ou SizeChanged
: Ceux qui sont seulement déclenché si l' Size
change réellement. Si votre fenêtre se trouve être égale à la taille de la fenêtre agrandie, ils ne se déclenche pas. Emplacement ressemble le prochain meilleur pari, mais qui se sent de nouveau comme les jeux de hasard sur une coïncidence.
- Vous pouvez tester l'emplacement, mais qui pose la question de savoir quel serait le feu de votre test...
- Serait de tester le windowstate dans la forme de l'événement activate aider?
- Par les nations unies "maximisée", tu veux sans doute dire "restaurée".
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire en remplaçant WndProc:
Cela devrait gérer l'événement dans une fenêtre.
SC_RESTORE
est0xF120
, etSC_MINIMIZE
est0XF020
, si vous avez besoin de ces constantes, trop.Surprenant que personne n'a mentionné l'intégré .Méthode NETTE.
De cette façon, vous n'avez pas besoin de remplacer la Fenêtre de Traitement d'un Message de gestionnaire.
Il capture même les agrandir/restaurer les événements causés par des double-cliquant sur la barre de titre de la fenêtre, dont la méthode WndProc ne pas.
Copier ce dans et de le lier à la "Redimensionner" gestionnaire d'événement sur le formulaire.
Un autre petit plus, afin de vérifier pour la restauration de l'original de la dimension et de la position après la maximisation:
Espérons que cette aide.
J'ai eu le même problème, et j'ai pu le résoudre sans écraser.
Parce que j'ai un PictureBox dans le dock en mode "Remplissage" je pourrais l'utiliser c'est SizeChanged événement, qui a mis le feu sur la maximisation de la fenêtre.
Je crois que le code est encore plus simple que cela. Vous n'avez pas besoin d'enregistrer le lastState parce que la WindowState est vérifié à tout moment lorsque l'événement est déclenché.
Si il n'y a pas de façon évidente de l'événement pour écouter, vous allez probablement avoir besoin de s'accrocher dans l'API Windows et attraper le message approprié (Google tourne jusqu'à ce que vous aurez envie d'intercepter le message WM_SYSCOMMAND: http://www.codeguru.com/forum/archive/index.php/t-234554.html).
J'espère que cette partie de code sera utile.
Je suis un newbie donc les commentaires ne sont pas autorisés, mais c'EST un commentaire à la propre réponse par Ciblage géographique:
La première ligne DEVRAIT être légèrement modifié pour accepter les valeurs null, attraper si le formulaire est commencé Réduite:
Et un banal suggestion: Déplacer la cession de LastWindowState à après le "si"s, de sorte que l'utilisateur peut facilement vérifier non seulement ce que vous allez, mais aussi ce qu'il est venu à partir de: