C# TableLayoutPanel retirer des controls
Utilisateur anonyme
-
sensa6on Messages postés 157 Statut Membre -
sensa6on Messages postés 157 Statut Membre -
Bonjour
Je suis en train de faire un logiciel WinForms en C#, et j'ai un tableau qui doit afficher des éléments. Le problème, c'est que quand je veux retirer des éléments pour actualiser ce tableau, je n'ai pas trouvé de méthode efficace.
Il y a:
Mais cette méthode semble très longue, et prend plusieurs secondes, et plus quand il y a plus de controls. Donc pour actualiser mon tableau, voir les labels disparaitre un par un ce n'est pas terrible. Quelqu'un a une solution?
Merci d'avance
Je suis en train de faire un logiciel WinForms en C#, et j'ai un tableau qui doit afficher des éléments. Le problème, c'est que quand je veux retirer des éléments pour actualiser ce tableau, je n'ai pas trouvé de méthode efficace.
Il y a:
table.Controls.Remove(table.GetControlFromPosition(x, y));
Mais cette méthode semble très longue, et prend plusieurs secondes, et plus quand il y a plus de controls. Donc pour actualiser mon tableau, voir les labels disparaitre un par un ce n'est pas terrible. Quelqu'un a une solution?
Merci d'avance
4 réponses
-
Bonjour
comment choisis tu quel contrôle supprimer?
Edit: quand tu les ajoutes leur donnes tu un nom?
Quand j'étais petit, la mer Morte n'était que malade.
George Burns -
je n'ai pas dû être assez explicite, que tu trouves le contrôle à supprimer avec la méthode GetControlFromPosition, tu l'as déjà écrit, ce que je voudrais savoir c'est comment tu détermines quel x et quel y supprimer.
Pour le nom, tu peux leur en donner même par le code.
-
-
As tu essayé avec RemoveAt ? de l'index 4 à 19?
Sinon, tu copies les 4 premiers labels dans un tableau de label, tu fais un Clear et tu remets les 4 sauvegardés.- Bonjour
Non ça ne marche pas mieux, mais il me semble que j'ai mal identifié le problème, j'ai l'impression qu'il y a une latence à chaque fois que le tableau s'actualise. Quand je le redimentionne j'ai ce même problème, peut être que ça vient du calcul des pourcentages que doit occuper chaque case.
En tout cas merci pour ta réponse. Pour ce nouveau problème je créée une nouvelle question?
-
-
Non, ça reste dans le même thème.
Comment charges tu le panel et calcules tu tes pourcentages?
-
Je ne sais pas exactement ce que tu cherches à faire mais tu peux essayer avec la méthode Dispose()
foreach (Control ctrl in tablelayoutpanel.controls)
{
if (ctrl is Label)
ctrl.dispose();
}