Mam problem z przepisaniem kontrolek pomiędzy flowLayoutPanel a kontrolką klasy Control. W programie potrzebuję przechowywać sporo kontrolek w jakimś obiekcie żeby później przepinać je do paneli, utworzyłem w tym celu kontrolkę fields klasy Control i do niej przypinam wszystkie kontrolki z którymi chce pracować. W trakcie działania programu przepinam niektóre kontrolki do flowLayoutPanel, przed czym te które już są w nim przenoszę ponownie do fields. Czyli taka wymiana, jak nowe wchodzą, to przed tym wyrzucam stare. No i tutaj pojawia się problem, żeby nie zaciemniać pokażę tylko kod usuwania kontrolek. W momencie uruchomienie tego kodu w flowLayoutPanel są 4 kontrolki, co potwierdza wyświetlenie flowLayoutPanel1.Controls.Count, jednak podczas pętli for, messagebox wyświetla się tylko 2 razy, dla i = 0 oraz 1. A co z 2 i 3? Dlaczego tamte kontrolki nie usuwają się? Nie wyświetla się żaden błąd.
MessageBox.Show("req: " + flowLayoutPanel1.Controls.Count); // req: 4
for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++)
{
MessageBox.Show(i.ToString()); // 2 razy wyświetlony
flowLayoutPanel1.Controls[i].Parent = fields;
}