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

 

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

Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

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

    Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

    Καλημέρα,

    αυτό που θέλω να κάνω είναι, κάνει ο χρήστης κάποιες επιλογές και βάση των επιλογών του δημιουργείται ένα sql string, τώρα εγώ αυτή την τιμή θέλω να την χρησιμοποι'ησω σε μια άλλη φόρμα για να δημιουργήσω ένα dataset.είχα βρεί ένα τρόπο αλλά τωρα 2 μέρες με κάτι αλλαγές που έκανα μου βγάζει nullreference.καμιά ιδέα;

    ευχαριστώ εκ των προτέρων..

  •  29-05-2007, 10:30 32298 σε απάντηση της 32296

    Απ: Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

    Οι δύο ευκολότεροι τρόποι να περάσεις μία παράμετρο από μία κλάση σε άλλη (όχι μόνο φόρμα) είναι να περάσεις την παράμετρο στον constructor της φόρμας ή να φτιάξεις στη φόρμα ένα property για να δέχεται την παράμετρο. Από εκεί και πέρα, αν σου βγάζει ένα null reference κάπου θα ξέχασες να βάλεις την τιμή πριν καλέσεις τη φόρμα. Αυτό μπορεί να έγινε οπουδήποτε στον κώδικα σου. Βάλε μερικά breakpoints και κάπου θα το βρεις.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-05-2007, 10:35 32300 σε απάντηση της 32298

    Απ: Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

    επειδή η πρώτη φόρμα που περιέχει την μεταβλητή δέν καλεί την δεύτερη έμεσα αλλα ο χρήστης όταν πατήσει ένα κουμπί απο την κεντρική φόρμα παίζει σημασία;

    πώς μπορώ να ορίσω property για την δεύτερη φόρμα;

    είμαι και νέος και μαθαίνω τώρα, αλλά εφόσον δεν είναι ανοικτή θα περάσει η τιμή της μεταβλητής;

  •  29-05-2007, 10:43 32301 σε απάντηση της 32300

    Απ: Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

    Η φόρμα είναι μία κλάση σαν όλες τις άλλες. Δημιουργείται με το new, όχι όταν καλείς Show. Μπορείς να δημιουργήσεις properties όπως με όλες τις κλάσεις και να καλέσεις τις μεθόδους και τα properties της φόρμας ακόμα και αν δεν έχεις καλέσει τη Show.

    Όταν ο χρήστης πατήσει το κουμπί, πάλι η φόρμα δεν είναι που δημιουργεί και καλεί τη δεύτερη φόρμα? Συνεπώς, δεν παίζει κανένα ρόλο.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  29-05-2007, 10:46 32302 σε απάντηση της 32301

    Απ: Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

    ειναι σωστός ο κώδικας που έγραψα για την prperty?

    Public Shared Property SQLStr(ByVal str)

    Get

    Return str

    End Get

    Set(ByVal value)

    value = str

    End Set

    End Property

    και την καλώ έτσι αλλα δεν δουλεύει

    MainMenuForm.SQLStr(strSelectMetriseis)

  •  29-05-2007, 11:08 32304 σε απάντηση της 32302

    Απ: Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

    Τα Properties είναι βασική έννοια όλων των σύγχρονων γλωσσών. Ίσως αντί να προσπαθείς να γράψεις μία εφαρμογή θα πρέπει πρώτα να εξοικειωθείς με τη γλώσσα και τη λογική του προγραμματισμού. Αν έχεις πρόβλημα με τη σύνταξη ενός property, θα έχεις πολύ μεγαλύτερα προβλήματα αργότερα με πιο περίπλοκες έννοιες.

    Όσον αφορά τον κώδικα που έγραψες, στο Set πρέπει να κάνεις str=value, όχι το ανάποδο.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  31-05-2007, 13:40 32393 σε απάντηση της 32304

    Απ: Μεταφορά τιμή μεταβλητής απο μια φόρμα σε άλλη

    Θεωρία:
    Όπως ήδη πολύ σωστά αναφέρθηκε η φόρμα είναι μια κλάση και σαν τέτοια πρέπει να της συμεριφέρεσαι... δηλαδή.
    Όταν η κλάση δημιουργείτε (με την εντολή new) ενεργοποιείτε και ο constructor της κλάσης αυτής.
    Εκεί ειναι και η καλύτερη "ευκαιρία" να περάσεις όσες μεταβλητές θέλεις από την κλάση που θα την καλέσεις...
    Πράξη:

    Public Class Form1
    Inherits System.Windows.Forms.Form

    ' Windows Forms Designer generated code region

    Private otherForm As New Form2("Foo")    ' ΕΔΩ ΔΗΜΙΟΥΡΓΕΙΣ ΤΗΝ 2η ΦΟΡΜΑ ΚΑΙ ΠΕΡΝΑΣ ΤΗΝ ΠΑΡΑΜΕΤΡΟ!!

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    otherForm.Show()
    End Sub
    End Class

    ' ----------------------

    Public Class Form2
    Inherits System.Windows.Forms.Form

    ' Windows Forms Designer generated code region

    Private param As String

    Public Sub New(ByVal newParameter As String
    ' CONSTRUCTOR!!
        InitializeComponent()
        param = newParameter
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(param)

    End Sub
    End Class




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