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

 

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

Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

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

    Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Στην Form1 υπάρχουν 3 αντικείμενα:   Textbox1 = [ID] SQLConnection1, SQLDataAdapter1, DataSet11.   Textbox2 = [Name] SQLConnection1, SQLDataAdapter1, DataSet11.   Button1 (καλεί την δεύτερη φόρμα)

    Στην Form2 υπάρχει ένα DataGrid1 = SQLConnection1, SQLDataAdapter1, DataSet11 (όπου το πρώτο πεδίο ID = ID του πεδίου της 1ης φόρμας). Τα DataSources των 2 φορμών είναι διαφορετικά. (Table1 της Form1, Table2 της Form2).

    Όταν καλώ την Form2 από την Form1

    Dim frmF2 As New Form2

    frmF2.Show()

    , υπάρχει το παρακάτω μήνυμα λάθους:

    An unhandled exception of type 'System.NullReferenceException' occurred in system.windows.forms.dll. Additional information: Object reference not set to an instance of an object.

    Ποιό είναι το λάθος. Λείπει κάτι στον ορισμό της 2ης φόρμας;

    Πώς ανοίγει η 2η φόρμα με τα records μόνο του ID της 1ης φόρμας στο αντίστοιχο DataGrid1;

    Ευχαριστώ


    Στ. Παπαδόπουλος
  •  15-11-2005, 13:11 7093 σε απάντηση της 7091

    Απ: Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Θα πρέπει να περιγράψεις καλύτερα τί συμβαίνει. Τί σημαίνει Textbox1 = [ID] SQLConnection1, SQLDataAdapter1, DataSet11. Textbox2 = [Name] SQLConnection1, SQLDataAdapter1, DataSet11 ?

    Αυτά είναι αντικείμενα στη φόρμα? Κλάσεις στο project? Τα αντικείμενα με το ίδιο όνομα στη δεύτερη φόρμα έχουν καμμία σχέση με τα αντικείμενα στην πρώτη? Είναι ανεξάρτητα αντικείμενα με το ίδιο όνομα όπως στην πρώτη φόρμα? Μία φόρμα δεν μπορεί να δει τα αντικείμενα που έχουν δημιουργηθεί σε μία άλλη. Μήπως περιμένεις να συμβεί αυτό?

    Πως περνάς τιμές από την πρώτη φόρμα στη δεύτερη? Αν δεν περάσεις μια τιμή στη δεύτερη φόρμα (π.χ. βάζοντας την σε ένα property της δεύτερης φόρμας) δεν θα γίνει τίποτα.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  15-11-2005, 13:14 7094 σε απάντηση της 7093

    Απ: Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Παναγιώτη, εχω την εντύπωση (διαβάζοντας πολύ βιαστικά) οτι ο συνάδελφος αναμένει οι φόρμες να συμπεριφερθούν με ένα τρόπο παρόμοιο με αυτό που συμπεριφέρονται οι master/detail φόρμες στην Access (με τα link master/child fields). Ας μας το επιβεβαιώσει, γιατί αν ξέρουμε οτι αυτό αναμένει μπορούμε να τον καθοδηγήσουμε καλύτερα (α, και η απάντηση εδώ είναι οτι δεν λειτουργούν οι φόρμες στο .NET με τον ίδιο τρόπο).

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

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  15-11-2005, 13:36 7096 σε απάντηση της 7093

    Απ: Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Τα Textbox1, Textbox2 και Button1 είναι αντικείμενα της πρώτης φόρμας.

    Το DataGrid1 είναι αντικείμενο της 2ης φόρμας. (Θα μπορούσα στην θέση του DataGrid1 να έχω ένα Textbox).

    Η ερώτηση είναι, πως συνδέω το Textbox1 της 1ης φόρμας DataSource1, με το 1ο πεδίο του DataGrid1 της 2ης φόρμας ή πιό απλά με ένα Textbox της 2ης φόρμας που έχει άλλο DataSource. Κάτι σαν Master/Detail, όπως στην MS Access.

    Απλά για κάθε εγγραφή του πίνακα Α, να φέρω τις εγγραφές από τον πίνακα Β. Το Textbox της Form1 κουβαλάει το ID του πίνακα Α.

    Ευχαριστώ


    Στ. Παπαδόπουλος
  •  15-11-2005, 13:39 7097 σε απάντηση της 7093

    Απ: Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Αυτό υποψιάζομαι κι εγώ, αλλά το error σημαίνει ότι κάπου προσπαθεί να καλέσει ένα αντικείμενο που δεν υπάρχει. Αυτό μπορεί να συμβαίνει επειδή έβαλε στα properties του datagrid στο Form2 τα ονόματα των αντικειμένων που έχου οριστεί στο Form1. Μπορεί πάλι να τα έχει ξαναορίσει στο Form2 και να λείπει κάτι σε αυτά. Χωρίς επιπλέον λεπτομέρειες δεν βγαίνει άκρη.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  15-11-2005, 13:52 7099 σε απάντηση της 7096

    Απ: Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Στο MSDN και το documentation του Visual Studio θα βρεις ένα παράδειγμα πως να δημιουργήσεις Master/Detail φόρμες Walkthrough: Creating a Master-Detail Windows Form .
    Ο τρόπος με τον οποίο δουλεύουν οι φόρμες στην Access είναι διαφορετικός από μια γενική γλώσσα προγραμματισμού. Στην Access υπάρχει η έννοια του master/detail και η detail φόρμα μπορεί να βλέπει την master. Σε μια γενική γλώσσα προγραμματισμού θα πρέπει να γράψεις κώδικα για να το πετύχεις αυτό.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  15-11-2005, 15:25 7101 σε απάντηση της 7099

    Απ: Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Ευχαριστώ Παναγιώτη.

    Το παράδειγμα είναι ακριβώς αυτό που θέλω, με την διαφορά, ότι το DataGrid δεν βρίσκεται στην ίδια φόρμα, άλλα σε δεύτερη φόρμα.

     


    Στ. Παπαδόπουλος
  •  16-11-2005, 02:41 7108 σε απάντηση της 7101

    Απ: Πώς ανοίγουμε 2η φόρμα, σχετικά με το ID πεδίου της 1ης φόρμας ;

    Πιστεύω οτι με λίγο πειραματισμό θα το κάνεις να δουλέψει και με διαφορετικές φόρμες.

    Μαρκαρα το θέμα ως "εχει επιλυθεί", μπορούμε να το αλλάξουμε σε περίπτωση που δεν συμφωνείς και θεωρείς οτι πρέπει να δοθούν περισσότερες πληροφορίες. Να παρακαλέσω με την ευκαιρία να φροντίζετε την "Κατάσταση Ενότητας" (επιλέγοντας "εχει επιλυθεί" όταν θεωρείτε οτι το θέμα που θέσατε έχει απαντηθεί πλήρως). Αυτό βέβαια δεν εμποδίζει κανένα να γράψει περισσότερα πράγματα, είναι όμως χρήσιμο για τους υπόλοιπους συναδέλφους, ούτως ώστε να γνωρίζουν οτι διαβάζοντας το θέμα θα βρουν κάποια ολοκληρωμένη απάντηση.

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

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

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