Bonjour,
Voilà mon problème.
J'ai un jeu de données que je souhaite représenter un peu à la manière d'un défragmenteur de disque, à savoir plusieurs carrés rangés en lignes et en colonnes.
Exemple :
Chacune de ces données représentée par un carrée doit posséder une couleur selon certains critères et doit être cliquable (par exemple pour reprendre l'analogie avec le defragmenteur, une couleur pour un cluster occupé, une pour un libre etc...).
Par ailleurs, j'aimerais que chaque carré soit cliquable pour accéder au détail concernant la donnée. Et éventuellement associer un ToolTip pour chacun (mais je peux m'en passer si c'est rédhibitoire).
Comme je suis débutant en C# winforms, j'aimerais votre avis sur la meilleur approche à ce problème sachant que j'ai une contrainte de taille, j'ai un maximum de 3600 données à afficher.
Ma première approche a été de créer dynamiquement des boutons et d'y associer un événement lors du clic.
Malheureusement avec plusieurs milliers de contrôles à afficher, la solution n'est pas viable
Sinon j'ai joué un peu avec un TableLayoutPanel mais je n'ai pas trouvé le moyen d'espacer les cellules pour "simuler" des carrés indépendants. En plus il faut déduire la cellule cliquée en fonction de la position du curseur et ce n'est pas très pratique pour moi.
J'en suis à tenter de dessiner un rectangle dans un pictureBox mais je pense que ce sera le même problème qu'avec mes boutons...
J'ai une solution de rechange, j'affiche les donnée dans un richTextBox. Pour le moment je différencie les données par une croix ou un point :
------------------------------------------------------------------------
Empreinte du fichier:
------------------------------------------------------------------------
[ 00:00 ] - XXXXXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [ ]
[ 01:00 ] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [ ]
[ 02:00 ] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [ ]
[ 03:00 ] - XXXXXXXXXXX.......XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [ ]
[ 04:00 ] - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [ ]
Mais je peux y introduire de la couleur.
Par contre je ne pourrai pas rendre la donnée cliquable...
Je sèche un peu, toute piste est la bienvenue !
Merci.
Partager