Θα σου δώσω το σκελετό μιας λύσης, και μπορείς να το δεις και μόνος σου λιγάκι, με τη βοήθειά μας:
Το control θα πρέπει να έχει ένα property το οποίο θα δίνει πλήρες type information για την κλάση που πρέπει να φορτώσεις, δηλαδή qualified assembly name στη μορφή "System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" και full namespace της κλάσης.
Αν περιορίσεις τις κλάσεις της φόρμας σε αυτές που υπάρχουν στο ίδιο assembly με το instance του custom control, τότε δε χρειάζεσαι το assembly name.
Το property αυτό θέλει ένα δικό του UITypeEditor, ο οποίος θα εμφανίζει μια λίστα με τα ονόματα των κλάσεων μέσα στην assembly οι οποίες έχουν για πρόγονο την System.Windows.Forms.Form.
Για το πώς θα φτιάξεις τον UITypeEditor μπορείς να ρίξεις μια ματιά
στο άρθρο αυτό, το οποίο θα σου δώσει αρκετές κατευθύνσεις. Όσο για το πώς θα βρεις σε design time τις κλάσεις μέσα στην assembly που δουλεύεις, είχαμε κάνει μια συζήτηση
εδώ αλλά δεν είχαμε καταλήξει. Ευκαιρία να το ξαναδούμε.
Νατάσα Μανουσοπούλου