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

 

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

Dynamic control creation at runtime

Îåêßíçóå áðü ôï ìÝëïò Pilgrim. Τελευταία δημοσίευση από το μέλος rousso στις 09-08-2005, 22:42. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-08-2005, 20:49 4096

    Dynamic control creation at runtime

    Θέλω να πετύχω το εξής :
    Με το click σε ένα button να προστίθεται ένα combo-box στην φόρμα μου. Όσο συνεχίζω να πατάω το button προστίθενται κι άλλα combo-boxes.

    Ξεκίνησα σε WinForm για να μην μπλέξω με ViewState και γενικά με το ASP.Net lifecycle.

    Ο παρακάτω κώδικας θα προσθέσει ένα μόνο control.


       System.Windows.Forms.ComboBox cb = new ComboBox();
       string uid ="cb"+ System.DateTime.Now.Hour.ToString() +System.DateTime.Now.Minute.ToString()+System.DateTime.Now.Second.ToString()+System.DateTime.Now.Millisecond.ToString();
       cb.Name=uid;
       this.panel1.Controls.Add(cb);

    Και τον καλώ στο click event του button μου.
    Το πρόβλημα όμως είναι ότι δεν θέλω να περιορίζω το πόσα controls μπορεί να έχει η φόρμα τελικά. Εξαρτάται απο τον χρήστη αυτό.
    Αναρωτιόμουν αν μπορώ να κάνω κάπως eval (όπως στην javascript) ώστε το cb να μην είναι σαν όνομα το ίδιο κάθε φορά. Δεν είμαι σίγουρος βέβαια αν έχω προσεγγίσει
    σωστά το πρόβλημα. Οπότε και το post. Οποιαδήποτε βοήθεια ευπρόσδεκτη..





  •  09-08-2005, 22:42 4098 σε απάντηση της 4096

    Απ:Dynamic control creation at runtime

    Είναι λίγο περίεργο έτσι όπως το περιγράφεις.

    Αν το πρόβλημά σου είναι πως θα δώσεις unique IDs στα controls, τότε θα μπορούσες να γράψεις

    string uid = "cb_" + System.Guid.NewGuid().ToString().Replace('-', '_');
    // Το prefix "cb_" το βάζω εκεί επίτηδες γιατί το Guid μπορεί να αρχίζει και από αριθμητικό ψηφείο οπότε δεν θα είνα valid το για Control.Id

    Αυτό σου εξασφαλίζει ότι δεν θα πάρεις ποτέ δύο ίδια UID για να τα χρησιμοποιήσεις στα controls σου (είτε είναι winforms είτε webforms).

    Αν κατάλαβα καλά αυτό ζητάς κι ελπίζω να σε βοηθάει αυτό που γράφω.

    Φιλικά

    rousso


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