Détection du changement de WindowState
Comme beaucoup vous utilisez probablement les évènements SizeChanged ou Resize du formulaire pour réagir aux changements de WindowState.
Cependant, j'ai découvert via un post de JFo qu'il existait une situation pour laquelle ces évènements ne seront pas levés : celui d'une demande de maximize alors qu'une taille limite est spécifiée (via MaximumSize) pour le formulaire et que la taille de ce dernier est justement cette taille maximum.
Dans ce cas là, la valeur de WindowState aura changer, mais vous ne serez pas au courant.
Une solution (donnée par JFo dans son post) est de se servir du bon vieux override de WndProc et de traiter le message WM_SIZE :
private const int WM_SIZE = 0x0005;
...
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SIZE)
{
// ...
}
base.WndProc(ref m);
}
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :