Я проголосовал за решение Натана, но хотел добавить немного больше, чем может обработать комментарий.
Его на самом деле очень хорошо, но я думаю, что лучшее решение будет включать в себя подклассы каждого из типов элементов управления, которые вы можете добавить, прежде чем добавлять их в графический интерфейс. Пусть все они реализуют интерфейс «Clearable» или что-то в этом роде (я программист на Java, но концепция должна быть там), затем перебираем его как коллекцию объектов «Clearable», вызывая единственный метод .clear () на каждом
Вот как в действительности нужно создавать GUI в ОО-системе. Это сделает ваш код легко расширяемым в будущем - почти слишком простым, вы будете шокированы.
Редактировать: (за комментарий Натана о том, чтобы не изменять существующие элементы управления)
Возможно, вы могли бы создать классы-контейнеры, которые ссылаются на ваш элемент управления (по одному для каждого типа элемента управления). В цикле, подобном тому, который вы создали в своем ответе, вы можете создать экземпляр правильного контейнера, поместить реальный элемент управления в контейнер и сохранить контейнер в коллекции.
Таким образом, вы вернулись к просмотру коллекции.
Это было бы хорошим простым решением, которое не намного сложнее предложенного вами, но бесконечно более расширяемое.