2010-03-01 11 views
15

Quel message ou événement Windows puis-je écouter pour empêcher une fenêtre de redessiner chaque pixel de son redimensionnement? C'est-à-dire, lorsqu'un utilisateur clique sur le bord de la fenêtre et commence à la redimensionner, je ne veux pas redessiner tout le contenu jusqu'à ce qu'il lâche. C'est parce que pour une raison quelconque, il est actuellement saccadé à redimensionner probablement parce que tout est re-docking et quoi pas.Empêcher le rafraîchissement de la fenêtre lors du redimensionnement des formulaires C# windows

J'ai essayé WM_SIZING mais cela ne me dit qu'il est d'être redimensionnée, je voudrais connaître le début et la fin du calibrage afin que je puisse suspendre la mise en page jusqu'à ce que l'utilisateur arrête le redimensionnement.

Répondre

30

Nevermind, je viens de trouver ces deux événements.

this.ResizeBegin += (s, e) => { this.SuspendLayout(); }; 
this.ResizeEnd += (s, e) => { this.ResumeLayout(true); }; 

fonctionne un régal

+1

Acceptez ce que la réponse, sera utile pour les personnes à la recherche pour le même problème à l'avenir –

+0

Il me dit que je dois attendre 2 jours avant que je puisse répondre à ma propre question – Daniel

+1

+ 1 pour l'utilisation de la syntaxe Lambda dans l'affectation d'événements. Mais, les utilisateurs notent: si ce type de syntaxe utilisant 'e est utilisé dans quelque chose comme un événement de chargement de formulaire, ou n'importe quoi en utilisant le nom standard d'un argument de type EventArgument: le nom de la variable' e sera déjà utilisé, donc changer pour quelque chose d'autre comme 'evt pourrait être utile. – BillW

Questions connexes