C# events

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
YiannisF
byte level
byte level
Posts: 108
Joined: Fri Apr 30, 2004 2:59 pm
Location: Bristol, UK

C# events

Post by YiannisF » Sun May 30, 2004 5:25 pm

Ξέρει κανείς αν μπορείς να πυροδοτήσεις ένα event στη C# μέσω ενός άλλου event;

Για παράδειγμα να πυροδοτηθεί το Button2_Click κάθε φορά που πυροδοτείται το Button1_Click. Να εκτελεστεί δηλαδή ΚΑΙ ο κώδικας του Button1_Click ΚΑΙ ο κώδικας του Button2_Click.
Image
.::YF::.
User avatar
fotisaueb
Kilobyte level
Kilobyte level
Posts: 230
Joined: Fri Apr 30, 2004 8:25 pm

Post by fotisaueb » Sun May 30, 2004 6:54 pm

Πρέπει να γίνεται αυτό που λες
Δοκίμασε να κάνεις για το button1.click 2 συναρτήσεις η μία θα καλεί την button1_click και η άλλη την button2_click δηλαδή θα ορίσεις το event 2 φορές και το ίδιο θα κάνεις αντίστοιχα για το button2.click
User avatar
YiannisF
byte level
byte level
Posts: 108
Joined: Fri Apr 30, 2004 2:59 pm
Location: Bristol, UK

Post by YiannisF » Sun May 30, 2004 8:16 pm

Σωστοοοοοος! Δούλεψε!
Image
.::YF::.
User avatar
Skeftomilos
bit level
bit level
Posts: 43
Joined: Fri Mar 04, 2005 8:08 am
Location: Ν.Κόσμος

Post by Skeftomilos » Tue Mar 08, 2005 11:44 am

Αν κατάλαβα καλά, συνέδεσες ένα συμβάν με δύο event-handling ρουτίνες. Δηλαδή κάτι σαν το παρακάτω:

Code: Select all

this.Load += new System.EventHandler(this.Form_Load);
this.Load += new System.EventHandler(this.Form_Activated);

void Form_Load(object sender, System.EventArgs e)
{
}

void Form_Activated(object sender, System.EventArgs e)
{
}
Αυτό είναι σωστό, με την προϋπόθεση ότι η σειρά με την οποία θα κληθούν οι ρουτίνες δε είναι σημαντική. Στο παραπάνω παράδειγμα δεν μπορείς να είσαι απόλυτα σίγουρος ότι η Form_Load θα κληθεί πριν την Form_Activated, παρόλο που τις συνέδεσες με αυτή τη σειρά. Αν η σειρά είναι σημαντική, πρέπει να καλέσεις τη δεύτερη ρουτίνα μέσα από την πρώτη:

Code: Select all

this.Load += new System.EventHandler(this.Form_Load);

void Form_Load(object sender, System.EventArgs e)
{
  Form_Activated(null, System.EventArgs.Empty);
}

void Form_Activated(object sender, System.EventArgs e)
{
}
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
Post Reply

Return to “Προγραμματισμός”