Bonjour,
Je viens vers vous car j’ai un sérieux problème de performances aussi bien processeur que mémoire. (mon appli prend 1Go de RAM.... )
Je ne peux poster mon code source car j’ai des contraintes de confidentialités vis-à-vis de mon client.
Je vous explique :
Je dois réaliser un soft qui permet de faire certains calculs sur des matrices.
L’affichage de ces matrices doit se faire « à plat ». Chaque cellule doit avoir un effet visuel (comme lorsqu’on passe au dessus avec la souris) et être sélectionnable.
La matrice la plus grande est une 30 x 60 ce qui revient à 1800 cellules à afficher.
J’ai donc opté pour la solution graphique la plus lourde à mon gout :
Sur la form de fond, j’ai appliqué un flowlayoutpanel, dans lequel j’ai inséré 1800 checkbox avec les propriétés selon l’image en pièce jointe de ce message.
Je ne suis pas un pro de VB, mais plus du c++, du coup j’ai un peu de mal avec la lourdeur de certains objets graphique. (J’ai aussi eu la contrainte du langage)
Vous comprenez ainsi que gérer 1800 checkbox est extrêmement lourd.
Pour connaître quelle cellule de la matrice est sélectionnée, j’utilise la solution de parcourir tous les objets du flowlayoutpanel et de vérifier que c’est une checkbox et quel est son état. (solution assez efficace plutôt que de gérer les 1800 objets indépendamment ^^ )
Connaissez-vous une méthode qui serait plus légère ? Ou peut-être des objets déjà tout fait à utiliser ? Je ne veux pas utiliser de datagridview, car il me faut pouvoir obtenir l’effet visuel que vous pouvez voir sur l’image en pièce jointe (vue_d_ensemble.jpg)
Je suis preneur de toute idée afin de pouvoir améliorer cette interface graphique !! (j’ai déjà modifié le fichier form.designer afin de ne pas avoir de nouvel objet font et padding pour tous les éléments, ça m’a fait gagner déjà quelques perfs !)
Si jamais cela s’avère nécessaire, je pourrai toujours réaliser une petite application VB ne contenant que l’interface graphique sans le code confidentiel !
Je vous remercie par avance,
nbrau
Partager