2010-06-14 4 views
2

Y at-il un moyen de désactiver toutes les mises à jour visuelles d'un formulaire .NET pendant que je le manipule? Lorsque mon programme se charge pour la première fois, par exemple, je définis le contrôle onglet sur l'onglet qui a été ouvert en dernier. L'utilisateur peut voir les onglets de commutation de programme. J'ai regardé dans SuspendLayout et ResumeLayout, mais je ne comprends pas ce qu'ils font, ou je ne les utilise pas correctement, car ils ne semblent pas avoir d'effet. Quelqu'un m'a dit qu'il y avait un moyen de désactiver les événements de peinture dans VB 6. Cela existe-t-il toujours dans .NET?Empêche la peinture du formulaire .NET pendant le chargement du formulaire?

Répondre

6

Pour la fenêtre principale, la chose la plus simple à faire est de créer la fenêtre cachée, faire toutes vos choses, puis afficher la fenêtre. De cette façon, vous aurez un rafraîchissement complet, et certaines parties de la mise en page effectuées une fois.

1

Remplacer OnPaint et OnPaintBackground dans votre formulaire/contrôle. Lorsqu'un drapeau est défini, n'appelez pas l'implémentation de base des méthodes.

Autre approche qui travaillera avec les enfants link text

+0

Cela devrait également travailler dans des situations au-delà du démarrage initial. – Nate

+0

Est-ce que cela fonctionne aussi pour tous les enfants? – OregonGhost

1

Il y a une approche non géré qui semble fonctionner le mieux (au moins dans mon expérience):

Disable Painting of the VScrollbar in a System.Windows.Forms.RichTextBox

La question est sur une barre de défilement, mais J'ai utilisé l'approche avec des formes plusieurs fois depuis que je sais comment le faire. Peu importe ce que pour un contrôle est est à moins que vous connaissez la poignée (Me.Handle)

Questions connexes