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

 

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

Επικοινωνία μεταξυ δυο "Form" σε c#

Îåêßíçóå áðü ôï ìÝëïò Strategy. Τελευταία δημοσίευση από το μέλος Strategy στις 26-11-2007, 18:13. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  26-11-2007, 15:57 37725

    Επικοινωνία μεταξυ δυο "Form" σε c#

    Με τη σειρά μου και εγώ ας χαιρετήσω την μεγάλη σας παρέα. Όπως ήδη έχετε  καταλάβει  είμια ένα καινούργιο μέλος! Κανούργιος
    και στο forum αλλα και στη c#. Η δουλειά μου δεν έχει να κάνει "διόλου" με προγραμματισμό  αλλα ξέρετε... απο χόμπυ.... ασχολούμαι..."τη βρίσκω" που λέμε. Με λίγα λόγια... έχετε να κάνετε μέ έναν άσχετο που θέλει τα φώτα σας...

    Στο ψητό λοιπόν....

    Έχω δύο φόρμες την Form1 και Form2. Στην Form1 έχω ένα textbox και ένα button. Στην Form2 έχω ένα numericUpDown. Όταν πατάω το button ανοίγει η form2(form2 fr2 = new form2(); fr2.Show();). Μέχρι εδώ νομίζω όλα καλά. Το πρόβλημά μου είναι το εξής : Πώς θα μπορέσω όταν αλλάζει η τιμή στο numericUpDown(της form2) να τυπώνεται αυτή στο textbox(της form1)??

    Ελπίζω να έγινα κατανοητός...

    Ευχαριστώ.......
  •  26-11-2007, 17:22 37730 σε απάντηση της 37725

    Απ: Επικοινωνία μεταξυ δυο "Form" σε c#

    Καλησπέρα και καλός Ήλθες στην παρέα μας,

    Στο Ψητό και εγώ:

    Αυτό που θές γίνετε σωστα με Event. (Αν δεν έχεις γνώσει απο Events πες μου να κάνω clarification)

    Πρέπει λοιπόν η Form2 να έχει ένα event το οποίο θα "πιάνει" η Form1 και θα αλλάζει την τιμή του TextBox, Πάμε λοιπόν να δουμε πώς μπορουμε να το κάνουμε αυτό.

     

    Μεσα στην Form2:

    using.....

    public delegate void UpDownChanged(string val);

       public partial class Form2: Form
       {
          public event UpDownChanged ValueChanged;

          public Form2()
          {
             InitializeComponents();
             this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
          }

          ....

          private void numericUpDown1_ValueChanged(object sender, EventArgs e)
          {
             if (ValueChanged != null)
                ValueChanged(numericUpDown1.Value.ToString());
          }
    }
     

    Τώρα μέσα στην Form1 εκεί που κάνεις :

    public partial Class Form1:Form
    {
    ...

    private void Button1_Click (object sender, EventArgs e)
    {
    Form2 frm2 = new Form2();
    frm2.ValueChanged +=new UpDownChanged(UpDownChanged);
    frm2.Show();
    }

    private void caseAssignment1_ev(string val)
    {
    this.textBox1.Text = val;
    }
    }

    Hope that helps

    Nassos


    "Success is the ability to go from one failure to another with no loss of enthusiasm."
    Winston Churchill

    "Quality means doing it right when no one is looking."
    Henry Ford

  •  26-11-2007, 18:13 37733 σε απάντηση της 37730

    Απ: Επικοινωνία μεταξυ δυο "Form" σε c#

    Να 'σαι καλά Nassos... Σιγά σιγά κάτι αρχίζω να καταλαβαίνω απο τα delegate.... που με είχαν μπερδέψει!

    Βέβαια εκεί που λές.... frm2.ValueChanged +=new UpDownChanged(UpDownChanged); δεν θα έπερεπε να είναι

    frm2.ValueChanged +=new UpDownChanged(caseAssigment1_ev); τουλάχιστον σε εμένα έτσι δούλεψε....

    Πω πω πολύ ζαλάδα αυτα delegate....Big Smile

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