je boucle:Performance de changer la position des centaines de WinForms contrôle
for (int i = 0; i < panel1->Controls->Count; ++i) {
Control^ ctl = panel1->Controls[i];
ctl->Location.Y = i*10;
}
Est-il correct si j'ai 200 ou 300 contrôles dans panel1? Ou ce sera mieux si j'ajoute ceci:
if (ctl->Location.Y != i*10) ctl->Location.Y = i*10;
Je ne sais pas si les contrôles de .NET repeindre toute façon (il faudra du temps) ou ils vérifie automatiquement s'il n'y a pas besoin de repeindre (encore même endroit)
Je pense que vous pouvez suspendre le rendu/la sortie de relais, ce qui pourrait accélérer ce code. – CodesInChaos
Dans des situations comme celles-ci, votre meilleur ami est un décompilateur comme Reflector. – leppie
@leppie Je préférerais le comparer en premier. – CodesInChaos