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

 

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

Μπορώ να δημιουργήσω Controls απο Data?

Îåêßíçóå áðü ôï ìÝëïò plavidas. Τελευταία δημοσίευση από το μέλος cap στις 16-06-2005, 15:20. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  11-06-2005, 21:59 2683

    No [N] Μπορώ να δημιουργήσω Controls απο Data?

    Μήπως μπορεί να μου δώσει κανεις τα φώτα του για το πώς μπορώ να δημιουργήσω Ένα control σε μία φόρμα απο ένα record με properties?

    Δηλαδή έχω ένα DataSet me Rows που κάθε row έχει διάφορα properties του Control. πχ. name="MyButton", type="System.Windows.Forms.Button", text="PushMe", top="100", Left="10".

    Με αυτά τα δεδομένα μπορώ να δημιουργήσω το Control στη φόρμα δυναμικά?[^o)]

    Λαβίδας Παναγιώτης
    Software Developer


    Παναγιώτης Λαβίδας
    Software Developer
  •  11-06-2005, 23:18 2684 σε απάντηση της 2683

    Re: Μπορώ να δημιουργήσω Controls απο Data?

    Δεν νομίζω ότι έχεις πρόβλημα να έχεις ένα select case loop, που να αναγνωρίζει τον τύπο του control και ανάλογα να το δημιουργεί, να του περνάει τις ιδιότητες που έχεις αποθηκεύσει και μετά να το προσθέτει στο controls collection της φόρμας.

    Καλύτερο παράδειγμα από αυτό του κώδικα που γράφει ο designer για σένα δεν θα μπορέσεις να βρεις! Smile

    George J.



    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  11-06-2005, 23:44 2685 σε απάντηση της 2683

    Re: Μπορώ να δημιουργήσω Controls απο Data?

    Το σκέφτηκα αυτό που μου λές Γιώργο, άλλα μήπως όμως υπάρχει ποιό απλός τρόπος απο το να γράφω Case για όλα τα Control που υπάρχουν?Indifferent

    Ειλικρινά δε θα ήθελα να το κάτσω να γράψω αυτόν τον κώδικα, αλλά έαν είναι ο μόνος τρόπος, θα πρέπει να αρχίσω να το σκέφτομαι πολύ σοβαρά!!! Tongue Tied
    Παναγιώτης Λαβίδας
    Software Developer
  •  12-06-2005, 01:27 2686 σε απάντηση της 2685

    Re: Μπορώ να δημιουργήσω Controls απο Data?

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ctrl As Control
        Dim asmb As System.Reflection.Assembly ' Χρειαζόμαστε ένα reference στο System.Windows.Forms

        ' Επειδή το fully qualified name του System.Windows.Forms είναι ένα μακρινάρι,
        ' ψάχνω τα φορτωμένα assemblies μέχρι να το βρω.
        ' Ίσως και να υπάρχει και καλύτερος τρόπος - είναι 1:30 το πρωί!

        For Each asmb In AppDomain.CurrentDomain.GetAssemblies
            If asmb.FullName Like "System.Windows.Forms*" Then
                Exit For
            End If
        Next

        'Και εδώ φτιάχνουμε το control μας, δυναμικά.  Φυσικά, το string
        '"Windows.System.Forms.Button" εσύ θα το διαβάζεις από την βάση...
        ctrl = Activator.CreateInstance(asmb.GetType("System.Windows.Forms.Button"))

        'Μερικά βασικά properties, για δοκιμή...
        With ctrl
            .Left = 50
            .Top = 50
            .Visible = True
            .Text = "Hello"
        End With
     
       'Και το βάζουμε στην φόρμα...
        Me.Controls.Add(ctrl)
    End Sub


    Patrick
  •  12-06-2005, 02:25 2687 σε απάντηση της 2685

    Re: Μπορώ να δημιουργήσω Controls απο Data?

    Υπάρχει τρόπος να φτιάξεις τελείως δυναμικά ένα Control, πχ ο ακόλουθος τρόπος στο New() μιας φόρμας:

    Dim myAssembly As System.Reflection.Assembly
    Dim myType As Type
    Dim myControl As Control

    myAssembly = System.Reflection.Assembly.Load("System.Windows.Forms, Version=1.1.4322.2032, Culture=neutral, PublicKeyToken=b77a5c561934e089")
    myType = myAssembly.GetType("System.Windows.Forms.Button")
    myControl =
    CType(Activator.CreateInstance(myType), Control)
    myControl.Text = "Hello!"
    Me.Controls.Add(myControl)

     
    Από ότι βλέπεις ενώ μπορώ να δημιουργήσω τον τύπο του control για να μπορέσω να το κάνω οτιδήποτε το κάνω cast σε Object. Μπορώ να του αλλάξω το property Text που ξέρω ότι έχει σαν Button αλλά πιθανώς δεν υπάρχει σε όλα τα Controls. Πιθανώς με ένα select case θα μπορέσεις να τα κάνεις populate τα properties και να είναι πιο μαζεμένος ο κώδικας, και για τον έλεγχο και το σωστό match properties με τύπο.

    Προσωπικά, θα πήγαινα με τον πρώτο τρόπο. Μην κοροιδευόμαστε, θα μπορούσες να αντιστοιχήσεις ένα control για κάθε τύπο δεδομένων, για μια εφαρμογή που θα έφτιαχνε δυναμικά φόρμες για εισαγωγή δεδομένων. θα έφτανα πιο εύκολα στο στόχο μου, γιατί θα είχα το type checking και θα απόφευγα πολλές κακοτοπίες.

    Πιο κάτω έχει δύο καλά άρθρα πάνω στο θέμα, αλλά σίγουρα μπορείς να βρεις και περισσότερα από μόνος σου.
     
    Σχετικοί Σύνδεσμοι:

    A Portal for My Data 
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet03262002.asp

    Mirror, Mirror
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet02262002.asp

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  12-06-2005, 02:29 2688 σε απάντηση της 2687

    Re: Μπορώ να δημιουργήσω Controls απο Data?

    Πω πω... Ξεκίνησα να γράφω στις 01:00 και το τελίωσα στις 02:30. Τι σου κάνει η τηλεόραση σε συνδιασμό με το posting... Με πρόλαβε ο Πάτρικ! Smile

    Καλύτερα για σένα... Wink

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  12-06-2005, 13:44 2693 σε απάντηση της 2683

    Yes [Y] Re: Μπορώ να δημιουργήσω Controls απο Data?

    ΟΚ παιδιά... Σας ευχαριστώ... ήθελα να ελέγξω αν ξέρετε!!! χεχε Stick out tongue

    PS
       Τι θα γίνει με μας??? Σαββατο βράδυ και είμαστε μέσα και δουλεύουμε?
    που θα πάει αυτη η κατάσταση?

    YesΘα ήθελα να ευχαριστήσω τους Γίωργο και Πάτρικ για την άμεση απάντηση, καθώς επίσης και του γονείς μου, τον Νίκο, τη Μαρία, τη Γιωργία, τον θείο, τον κουμπάρο, το μπατζανάκη μου και το παιδί που μου καθαρίζει τα τζάμια στα φανάρια της Χρεμωνίδου για όλη την υποστήριξη που μου προσφέρανε στο δρόμο που με πέταξε η γυναίκα... (Crying αμάν αυτές οι γυναίκες που δεν ασχολούντε με Η/Υ... Δεν μας καταλαβαίνουν καθόλου, μόνο για κρεβατομουρμούρα είναι...Angry)
    Παναγιώτης Λαβίδας
    Software Developer
  •  16-06-2005, 15:20 2871 σε απάντηση της 2683

    Re: Μπορώ να δημιουργήσω Controls απο Data?

    Παναγιώτη ρίξε μια ματιά σε αυτό εδώ που πέτυχα σήμερα...
    http://www.fivetuple.com/021_coderform.asp

    Ειναι ένα πολύ ενδιαφέρον library δυναμικής κατασκευής φορμών (αν και σε beta ακόμα).

    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

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