J'essaie d'implémenter des classes TabControl/TabPage améliorées, afin d'obtenir une fonctionnalité TabVisible réelle, puisque la propriété Visible de TabPage ne fonctionne pas comme prévu.Solution de contournement TabVisible - fuites de mémoire
Je travaille avec C#/WinForms/VS2005/.Net FW 2.0; Je l'ai mis en œuvre le code de cette façon:
http://csharp.pastebin.com/AUnzRQLw
Et je l'ai fait un formulaire pour le tester, cochant/décochant cases à cocher pour afficher/masquer certains contrôles VisibleTabPage J'ai ajouté (http ..// csharp.pastebin.com/MkGJGx2G). Mais, après un certain nombre de clics sur CheckBoxes, dans une séquence aléatoire, l'application commence à allouer de plus en plus de mémoire, et utilise une quantité considérable de CPU pour afficher/masquer les contrôles TabPage.
Quelqu'un peut-il me signaler où est le bogue?
Je suggère de vérifier si vous réinitialisez vos pages d'onglets lorsque l'état de la case à cocher a changé. Le meilleur moyen de vérifier cela serait de télécharger un bon profileur (Windbg etc.) et de découvrir quels objets existent en mémoire. –
Oui, j'ai utilisé un profileur de mémoire et j'ai trouvé que l'objet ArrayList était le coupable. J'ai créé une ArrayList privée que je conserve pendant toute la durée de vie de l'objet TabControlEx, ce qui a résolu le problème. – Alexandre