Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Άνοιγμα φόρμας μέσω stringName

Îåêßíçóå áðü ôï ìÝëïò mkoukou. Τελευταία δημοσίευση από το μέλος mkoukou στις 03-08-2006, 15:16. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-08-2006, 09:32 15430

    Άνοιγμα φόρμας μέσω stringName

    Προσπαθώ να ανοίξω μία φόρμα μέσω του ονοματός της που βρίσκεται μέσα σε μια μεταβλητή string.

    Π.χ.

    Dim strForm as string = "frmTest"

    Υπάρχει τρόπος, όπου να χρησιμοποιηθεί η μεταβλητή strForm ώστε να εμφανιστεί η φόρμα frmTest στη Visual Basic 2005;

  •  03-08-2006, 10:23 15431 σε απάντηση της 15430

    Απ: Άνοιγμα φόρμας μέσω stringName

    Υπάρχει τρόπος, ο οποίος χρησιμοποιεί reflection. Αν υποθέσουμε ότι όλες οι φόρμες που θέλεις να ανοίξεις, και ο κώδικας που τις ανοίγει βρίσκονται στην ίδια assembly, τότε χρησιμοποιείς την Assembly.GetExecutingAssembly().CreateInstance("MyNamespace.MyFormName", true) για να δημιουργήσεις ένα instance της φόρμας, το οποίο θα κάνεις typecast σε System.Windows.Forms.Form και θα το χειριστείς μετά σαν φόρμα.

    Χρειάζεσαι exception handling στην αποτυχία του φορτώματος της κλάσης (βλ. το documentation της CreateInstance), και για την περίπτωση που το όνομα της κλάσης δεν αντιπροσωπεύει φόρμα. Επίσης χρειάζεσαι επίπεδο security που να επιτρέπει το reflection.

    Αν τώρα οι φόρμες δε βρίσκονται μέσα στην ίδια assembly, τότε περνάς στην System.Activator, με τις CreateInstance/CreateInstanceFrom.

    Κάθε φορά που το συναντάω μπροστά μου συνειδητοποιώ πόσο λατρεύω το reflection. Smile


    Νατάσα Μανουσοπούλου
  •  03-08-2006, 15:16 15455 σε απάντηση της 15430

    Απ: Άνοιγμα φόρμας μέσω stringName

    Μόλις το δοκίμασα και τρέχει κανονικά.

    Ευχαριστώ
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems