Dans mon application, j'ai un contrôle DataGridView qui affiche des données pour l'objet sélectionné. Lorsque je sélectionne un objet différent (dans une liste déroulante ci-dessus), j'ai besoin de mettre à jour la grille. Malheureusement, différents objets ont des données complètement différentes, même des colonnes différentes. Je dois donc effacer toutes les données et colonnes existantes, créer de nouvelles colonnes et ajouter toutes les lignes. Quand cela est fait, le contrôle entier scintille horriblement et cela prend des âges. Existe-t-il un moyen générique d'obtenir le contrôle dans un état de mise à jour afin qu'il ne se repeigne pas, puis le repeindre après avoir terminé toutes les mises à jour?Scintillement lors des mises à jour de contrôles dans WinForms (par exemple DataGridView)
Il est certainement possible avec TreeViews:
myTreeView.BeginUpdate();
try
{
//do the updates
}
finally
{
myTreeView.EndUpdate();
}
est-il un moyen générique de le faire avec d'autres contrôles, DataGridView en particulier? MISE À JOUR: Désolé, je ne suis pas sûr d'avoir été assez clair. Je vois la « vacillante », car après le contrôle unique du contrôle se repeint à l'écran, de sorte que vous pouvez voir la barre de défilement rétrécissement, etc.
Ajoutez ceci dans votre DataGridView DoubleBuffered (true); –