Lucasd
Messages postés76Date d'inscriptionlundi 21 février 2005StatutMembreDernière intervention18 mai 2006
-
9 mars 2006 à 10:54
parlaciel
Messages postés33Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention22 décembre 2009
-
29 avril 2008 à 13:48
Salut tt le monde!
Voilà, je voulais savoir, j'ai l'impression que quand je supprime un élément dans une list, il décalle avance tout ceux qui le suivait d'une position!!
Est ce vraiment ça ou je me trompe? dans ce cas c'est génial
Lucasd
Messages postés76Date d'inscriptionlundi 21 février 2005StatutMembreDernière intervention18 mai 2006 9 mars 2006 à 11:54
bah dans mon cas c'est super car quand je supprime une ligne de mon datagrid, les autres remonte et les index de ma grid correspondent avec les index de ma list!
cs_zatt
Messages postés131Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention23 septembre 2011 9 mars 2006 à 22:12
tu es sur que c'est fiable ??
sinon tu px aussi vider ta liste et la recharger (si pas trop de données), même si pas très élégant, au moins tu es sur que les index correspondent bien.
parlaciel
Messages postés33Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention22 décembre 20091 29 avril 2008 à 13:48
bonjour à vous! je poste ici car ça a rapport avec ce qui est dit dans le topic même si ça remonte à assez loin...... si vous avez une réponse!!!!!
je me lance ^^
je crée dynamiquement des controls que je range dans une list. quand je supprime des éléments tout va bien le réindexage se passe nikel. Le problème c' est pour l affichage des controls dans ma form. vu qu'ils sont créé dynamiquement, j'incrémente une variable pour que les controls ne se superposent pas.... quand je supprime et que je fais un réaffichage..... ça ne fonctionne pas. Voici le code qui sera certainement plus clair que moi:
private void button3_Click(object sender, EventArgs e)
{
Button suppr = new Button();
Button edit = new Button();
CheckBox ma_checkBox = new CheckBox();
TextBox ma_textBox = new TextBox();
Label titre = new Label();
object mon_objet = new object();
int i=0;// s'incrémente si le modulo est nul =>on est bien sur la fin d'une ligne //à afficher
suppr = (Button)sender;
int index = mes_elements.IndexOf(suppr);
edit = (Button)mes_elements[(index - 2)];
nowForm = (Form10)mes_elements[(index - 1)];
ma_checkBox = (CheckBox)mes_elements[index - 3];
ma_textBox = (TextBox)mes_elements[index - 4];
titre = (Label)mes_elements[index - 5];
MessageBox.Show(mes_elements.IndexOf(suppr).ToString());
mes_elements.RemoveRange(mes_elements.IndexOf(suppr)-5,6);
int indexfinal = mes_elements.Count ;
MessageBox.Show(indexfinal.ToString());
Controls.Remove(titre);
Controls.Remove(edit);
Controls.Remove(suppr);
Controls.Remove(nowForm);
Controls.Remove(ma_textBox);
Controls.Remove(ma_checkBox);
for (int j 1; j indexfinal; j++)
{
if (j % 6 == 0)
i = i++;
switch (mes_elements[j].Name)
{
case "button2": mes_elements[j].Location = new System.Drawing.Point(270, 204 + 20 * i); break;
case "button3": mes_elements[j].Location = new System.Drawing.Point(301, 204 + 20 * i); break;
case "titre": mes_elements[j].Location = new System.Drawing.Point(31, 102 + 20 * i); break;
case "textBox1": mes_elements[j].Location = new System.Drawing.Point(72, 98 + 20 * l); break;
case "checkBox1": mes_elements[j].Location = new System.Drawing.Point(274, 101 + 20 * l); break;
}
Controls.Add(mes_elements[j]);
}
l = l - 1;
}
Je comprends pas trop pourquoi ça refuse de réafficher correctement.
Si jamais vous avez une solution faites signe!!!!!