Io in condizioni "penso" simili alle tue utilizzo un panel(o diversi) e aggiungo al suo interno (a run-time) tutti i controlli che mi interessano scegliendo da codice le condizioni per la creazione.
Ciao
Legnetto