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

 

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

form contructors

Îåêßíçóå áðü ôï ìÝëïò Dimitris Papadimitriou. Τελευταία δημοσίευση από το μέλος Mitsaras στις 08-12-2006, 20:05. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-12-2006, 16:09 21897

    form contructors

    Έστω ότι για να λειτουργήσει μια φόρμα, θέλετε να περνάτε οπωσδήποτε μια μεταβλητή σε αυτή.
    Αν βάλετε την μεταβλητή στον contructor, τότε ο designer της φόρμας δεν λειτουργεί. Αν πάλι δεν την βάλετε στον contructor, τότε δεν μπορείτε να είστε βέβαιοι ότι η μεταβλητή έχει οριστεί.
    Τι κάνετε;

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  08-12-2006, 16:16 21899 σε απάντηση της 21897

    Απ: form contructors

    Την βάζουμε σαν Property στο Class Form και την ελέγχουμε μέσα στον constructor. Εάν είναι null, δεν έχει περαστεί..

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  08-12-2006, 16:19 21900 σε απάντηση της 21897

    Απ: form contructors

    O constructor λειτουργεί σωστά με τον designer αρκεί να έχει την κλήση στην InitializeComponent. Από εκεί και πέρα, αν θες μπορείς να δημιουργήσεις έναν overloaded constructor... Και την πίτα, και το σκύλο Big Smile
    Vir prudens non contra ventum mingit
  •  08-12-2006, 16:35 21902 σε απάντηση της 21900

    Απ: form contructors

    Μπορείς να έχεις παραμέτρους στον ένα και μοναδικό ctor της φόρμας σου χωρίς πρόβλημα, έως ότου φτιάξεις μια άλλη φόρμα που την κληρονομεί. Τότε, ο default ctor είναι απαραίτητος, και δεν μπορείς πλέον να εμποδίσεις τους χρήστες της κλάσης σου να καλέσουν τον "λάθος" ctor (το IsDesignMode δεν έχει τεθεί την ώρα που ο ctor καλείται από το designer).

    Νατάσα Μανουσοπούλου
  •  08-12-2006, 17:32 21908 σε απάντηση της 21902

    Απ: form contructors

     pkefal wrote:
    Την βάζουμε σαν Property στο Class Form και την ελέγχουμε μέσα στον constructor. Εάν είναι null, δεν έχει περαστεί..

    Μα δεν μπορώ να θέσω την μεταβλητή πριν τρέξει ο constructor!

     kelman wrote:
    O constructor λειτουργεί σωστά με τον designer αρκεί να έχει την κλήση στην InitializeComponent. Από εκεί και πέρα, αν θες μπορείς να δημιουργήσεις έναν overloaded constructor... Και την πίτα, και το σκύλο

    Αν έχω δυο constructors, τότε δεν μπορώ να είμαι σίγουρος ότι θα κληθή ο σωστός που πέρνει την παράμετρο και όχι ο άλλος.

     mns wrote:
    Μπορείς να έχεις παραμέτρους στον ένα και μοναδικό ctor της φόρμας σου χωρίς πρόβλημα, έως ότου φτιάξεις μια άλλη φόρμα που την κληρονομεί. Τότε, ο default ctor είναι απαραίτητος, και δεν μπορείς πλέον να εμποδίσεις τους χρήστες της κλάσης σου να καλέσουν τον "λάθος" ctor (το IsDesignMode δεν έχει τεθεί την ώρα που ο ctor καλείται από το designer).

    Η αλήθεια είναι ότι η φόρμες που θέλω να έχω την μεταβλητή δεν θέλω να είναι inhertable.
    Αυτές που είναι, δεν θέλω να είναι creatable από τον κώδικα. Είναι κατά κάποιο τρόπο abstract.
    Άρα μάλλον λύνεται ως εξής: Βάζω default και parametrized constructor στις abstract και μόνο parametrized στις υπόλοιπες!

    Ευχαριστώ όλους για τις ιδέες!

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  08-12-2006, 18:03 21910 σε απάντηση της 21908

    Απ: form contructors

     papadi wrote:
     pkefal wrote:
    Την βάζουμε σαν Property στο Class Form και την ελέγχουμε μέσα στον constructor. Εάν είναι null, δεν έχει περαστεί..

    Μα δεν μπορώ να θέσω την μεταβλητή πριν τρέξει ο constructor!


    Αϊ στο καλό, μπερδεύτηκα.. Είχα το OnLoad στο μυαλό μου Embarrassed

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  08-12-2006, 18:55 21913 σε απάντηση της 21897

    Απ: form contructors

    "Άρα μάλλον λύνεται ως εξής: Βάζω default και parametrized constructor στις abstract και μόνο parametrized στις υπόλοιπες"

    Αυτό δε θα αρέσει καθόλου στον designer όμως!
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  08-12-2006, 19:56 21914 σε απάντηση της 21913

    Απ: form contructors

    Του αρέσει. Γιατί όχι.

    Στο μεταξύ είδα ότι αν βάλεις private parameterless constructor στην base class τότε όλα δουλεύουν μια χαρά και ακολουθεί και η base class την αρχική απαίτηση, δηλαδή να αρχικοποιείται μόνο με τον parametrized constructor από τον κώδικα για να ορίζεται πάντα η μεταβλητή που θέλω.
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  08-12-2006, 20:05 21915 σε απάντηση της 21897

    Απ: form contructors

    Χμ... Private constructor ε; Δε θυμάμαι αν όντως το δοκίμασα (γιατί αντιμετώπισα κι εγώ το παραπάνω πρόβλημα, αλλά η εφαρμογή ήταν εσωτερική, οπότε αγνοούσα την ύπαρξη του parameterless constructor), αλλά θα είναι το πρώτο πράγμα που θα κοιτάξω αύριο πρωί πρωί.
    Μην αφήνετε τα media να σας "ταΐζουν"!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems