Object c2 = c;
Object c2 = c;// cette ligne veut dire c2 est c. Si tu ajoutes c2 dans tabpage2 à mon sens il ne peux plus être dans tabpage1
foreach (Control c in tabPage1.Controls) { if (Type == TextBox) { TextBox c2 = new TextBox(); c2.Text = c.Text; tabPage2.Controls.Add((Control)c2); } //etc, pour les méthodes je ne sais pas trop }
Object c2 = c;signifiait non pas que c=c2 mais que c2 est une réference sur une copie de c...
if (Type == TextBox)