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

 

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

Πέρασμα τιμών σε Form

Îåêßíçóå áðü ôï ìÝëïò pk78. Τελευταία δημοσίευση από το μέλος pk78 στις 22-10-2007, 22:34. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-10-2007, 10:05 36381

    Πέρασμα τιμών σε Form

        Καλημέρα,

    Έχω το εξής πρόβλημα. Έχω την κύρια φόρμα MainForm στο προγραμμά μου, στην οποία τρέχει ενας TCP Listener. Επίσης, η ΜainForm καλεί την Form1 και δουλεύω από την Form1 για κάποιο χρονικό διάστημα. Στο διάστημα αυτό θέλω η MainForm (αναλόγως σε τι κατάσταση βρίσκεται ο TCP Listener) να στέλνει μηνύματα στο textBox της Form1.
    Να γράφει δηλαδή η MainForm στο textBox της Form1. Καμία ιδέα πως μπορεί να γίνει αυτό?

    thanx
  •  20-10-2007, 06:46 36406 σε απάντηση της 36381

    Απ: Πέρασμα τιμών σε Form

    Για να γίνει και αρχιτεκτονικά σωστά είναι αναγκαίο  να χρησιμοποιηθεί [System.Runtime.CompilerServices.AccessedThroughProperty("ControlName")].

    Σου επισυνάπτω και ένα παράδειγμα


    while (!dead) learn();
  •  20-10-2007, 11:08 36409 σε απάντηση της 36406

    Απ: Πέρασμα τιμών σε Form

    Συγγώμη, εάν το κάνει μ'ένα custom event το οποίο το πιάνει η MainForm κι έχει στα Event Data, το μήνυμα που θέλει κι ότι άλλη πληροφορία, δεν είναι πιο εύκολο και λιγότερο resource/cpu hungry;
    Παναγιώτης Κεφαλίδης

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

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  20-10-2007, 11:47 36410 σε απάντηση της 36409

    Απ: Πέρασμα τιμών σε Form

    Και ακόμα πιο απλό, να καλεί η MainForm μία μέθοδο DisplayStatus στη Form1?

    Κατά κανόνα, δεν πρέπει να πειράζει κανείς τα πεδία μίας φόρμας από μία άλλη φόρμα. Αν η δεύτερη φόρμα αλλάξει, θα χρειαστεί να αλλάξει και η πρώτη φόρμα. Σήμερα μπορεί τα δεδομένα να εμφανίζονται σε ένα TextBox, αύριο σε ένα Label και μεθαύριο σε ένα animation. Ή μπορεί να θέλεις να αλλάξεις το κείμενο και το χρώμα του TextBox. Άσε που έτσι η MainForm θα αρχίσει σιγά-σιγά να γεμίζει με λεπτομέρειες που αφορούν άλλες φόρμες. Είναι πολύ καλύτερο να προσθέσεις μία μέθοδο DisplayStatus στη Form1 η οποία θα παίρνει τα στοιχεία που θέλεις να δείξεις και μετά θα τα εμφανίζει όπως θες. Έτσι, θα μπορείς να αλλάζεις τον τρόπο με τον οποίο παρουσιάζεις τα δεδομένα χωρίς να χαλάς την MainForm.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  20-10-2007, 16:09 36420 σε απάντηση της 36410

    Απ: Πέρασμα τιμών σε Form

    Ναι όντως, του Παναγιώτη είναι ακόμα πιο εύκολο. Είχα την αίσθηση ότι δεν ήθελε το status του Listener αλλά γενικά ότι "φτάνει" μέχρι εκεί.
    Παναγιώτης Κεφαλίδης

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

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  21-10-2007, 07:36 36449 σε απάντηση της 36410

    Απ: Πέρασμα τιμών σε Form

    Το property “AccessedThroughProperty” το χρησιμοποιώ για Visual Inheritance. Μου δίνει τη δυνατότητα να επεμβαίνω στα properties της base φόρμα, χωρίς να κάνω public κανένα control. Αλλά, (πάντα υπάρχει τουλάχιστον ένα «αλλά») η τεχνική προτείνει ο Παναγιώτης είναι σαφώς η σωστότερη. Και εάν θέλουμε να πάμε και λίγο ποιο μακριά, μπορούμε να κατασκευάσουμε ένα Interface (IFOO) και να του δώσουμε τη μέθοδο DisplayStatus. Άρα όποια φόρμα υλοποιεί το συγκεκριμένο Interface (πχ και μια άλλη φόρα «Form2») θα συμπεριφέρεται και αυτή ως «DisplayStatus» . Τελειώνοντας, ξέρει κάποιος τι γίνεται με το «Visual Inheritance» και τις φόρμες σε XAML;
    while (!dead) learn();
  •  22-10-2007, 22:34 36495 σε απάντηση της 36410

    Απ: Πέρασμα τιμών σε Form

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