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

 

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

Μεταφορά στοιχείων από την μια φόρμα στην άλλη

Îåêßíçóå áðü ôï ìÝëïò Filaretos. Τελευταία δημοσίευση από το μέλος Filaretos στις 29-06-2006, 09:26. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  27-06-2006, 13:56 14261

    Confused [*-)] Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Έχω το εξής πρόβλημα :
    Έχω 3 φόρμες που η μια ανοίγει μετά την άλλη.
    Στην 2ηκαι στην 3η φόρμα υπάρχει από ένα
    text box.
    Αυτό που θέλω να κάνω είναι αυτό που πληκτρολογώ στο
    text box της 3ης φόρμας να μπορώ να το περάσω στο text box της 2ης φόρμας.

    Ο κώδικας που χρησιμοποιώ είναι ο εξής :

    Φόρμα 1 (στο κλικ του κουμπιού)
    Dim objForm2 As New Form2
    objForm2.ShowDialog()

    Φόρμα 2 (στο κλικ του κουμπιού)
    Dim objForm3 As New Form3
    objForm3.ShowDialog()

    Φόρμα 3 (στο κλικ του κουμπιού)
    Form2.TextBox1.Text = Me.TextBox1.Text

    Όταν έχω 2 φόρμες το παραπάνω δουλεύει μια χαρά αλλά όταν μπαίνει και 3η φόρμα δεν δουλεύει.
    Μπορεί κάποιος να με βοηθήσει παρακαλώ;;


    Φιλάρετος Σεβαστιάδης.

    Albert Camus: Life is the sum of your choices.

  •  27-06-2006, 14:10 14262 σε απάντηση της 14261

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Καλό θα ήτανε να τα φτιάξεις σαν properties της class που δημιουργείτε, τα οποιά properties της class της form σου θα κάνουν set το .Text property των textbox..

    Απο την αλλη μήπως ξέχασες να κάνεις set να είναι public τον modifier του τρίτου textbox..
    Παναγιώτης Κεφαλίδης

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

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

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

     Filaretos wrote:
    Φόρμα 3 (στο κλικ του κουμπιού)
    Form2.TextBox1.Text = Me.TextBox1.Text

    Η VB.NET δεν λειτουργεί όπως η VB6 όσο έχει να κάνει με την αυτόματη δημιουργία των φορμών.

    Άλλαξε τον παραπάνω κώδικα σε:

    objForm2.TextBox1.Text = Me.TextBox1.Text

     

    George J.


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

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Ευχαριστώ για την ανταποκρισή σας.

    Συγνώμη που επιμένω αλλά αυτό που μου κάνει εντύπωση και δεν ξέρω γιατί συμβάινει είναι ότι ενώ με τον ίδιο τρόπο μπορώ να περάσω την τιμή από το textbox της 3ης φόρμας στο textbox της 1ης φόρμας δεν μπορώ περάσω την τιμή από την 3η στη 2η φόρμα.

    Φόρμα 3 (στο κλικ του κουμπιού)

    Form2.TextBox1.Text = Me.TextBox1.Text

    Form1.TextBox1.Text = Me.TextBox1.Text

    Μπορεί ο τρόπος που χρησιμοποιώ να μην είναι ο καλύτερος.

    Αν σας είναι εύκολο δώστε μου ένα πλήρες παράδειγμα ή δώστε μου μια παραπομπή για να δω πως γίνεται.

    Και πάλι ευχαριστώ


    Φιλάρετος Σεβαστιάδης.

    Albert Camus: Life is the sum of your choices.

  •  27-06-2006, 19:13 14272 σε απάντηση της 14269

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Υποπτεύομαι, πως το πρόβλημα είναι στον τρόπο με τον οποίο ανοίγεις τις δύο φόρμες.

    Όταν χρησιμοποιείς την ShowDialog(), δεν ανοίγεις απλά μία φόρμα, αλλά έναν διάλογο μεταξύ της Form1 και της φόρμας που ανοίγεις(modal Form).Η ShowDialog() δεν είναι void αλλά επιστρέφει ένα DialogResult αποτέλεσμα.Αφήνοντας λοιπόν την Form2 ανοιχτή με αυτόν τον τρόπο, αφήνεις ανοιχτό έναν διάλογο μεταξύ Form1->Form2, και έτσι δεν μπορείς να προσπελάσεις τα public object τους από ένα τρίτο σημείο, μέχρι ο διάλογος αυτός να ολοκληρωθεί.

    Εν ολίγοις, αν χρησιμοποιήσεις την Show() (non-modal Form) αντί της ShowDialog(), νομίζω πως το πρόβλημά σου θα λυθεί.

    π.χ.

    Dim objForm2 As New Form2

    objForm2.Show()

    Dim objForm3 As New Form3

    objForm3.Show()

    Άν έγραφες σε μια πιο "σφιχτή" γλώσσα, όπως η C#, η σκέτη objForm3.ShowDialog() θα σου χτυπούσε σφάλμα,για τους παραπάνω λόγους.

    Περισσότερες και αναλυτικές πληροφορίες για τις διαφορές των δύο αυτών method θα βρείς εύκολα στο MSDN.
  •  28-06-2006, 09:52 14274 σε απάντηση της 14272

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Ευχαριστώ για την απάντηση.
    Έκανα αυτό μου είπες (non-modal) αλλά συνεχίζει να υφίσταται το πρόβλημα.
    Επαναλαμβάνω ότι εάν έχω μόνο δύο φόρμες δουλεύει μια χαρά.
    Το πρόβλημα παρουσιάζεται όταν μπει και 3η φόρμα.
    Ουσιαστικά δεν μπορώ να μεταφέρω την τιμή από την τελευταία φόρμα στην ενδιάμεση.
    Θα το κοιτάξω και στο MSDN  

    Φιλάρετος Σεβαστιάδης.

    Albert Camus: Life is the sum of your choices.

  •  28-06-2006, 23:16 14286 σε απάντηση της 14274

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Ρίξε μια ματιά σε αυτό το "How To" στο MSDN Library for Visual Studio 2005

    ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.KB.v10.en/enu_kbvbnetkb/vbnetkb/841292.htm

    Νομίζω πως θα σε βοηθήσει.

  •  29-06-2006, 09:05 14290 σε απάντηση της 14274

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Filarete, βρήκα το χρόνο να το δοκιμάσω, και δούλεψε.

    Έκανα το εξής:

    Στην Form3 στο Declarations όρισε

    Public objForm As Object

    Έπειτα στο Button_Click Event (ή σε όποιο άλλο σε βολεύει)

    CType(objForm, Form2).TextBox1.Text = "Hello from Form3!!!"

     

    Τέλος στην Form2 στο Button_Click Event που χρησιμοποιείς για να καλέσεις την Form3, γράψε

    Dim MyForm As New Form3()
     MyForm.objForm = Me
     MyForm.Show()

  •  29-06-2006, 09:26 14293 σε απάντηση της 14290

    Απ: Μεταφορά στοιχείων από την μια φόρμα στην άλλη

    Δούλεψεεεε.

    Σε ευχαριστώ πολύ


    Φιλάρετος Σεβαστιάδης.

    Albert Camus: Life is the sum of your choices.

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