C# Ereignisse und Ereignishandler

Neue Frage »

Auf diesen Beitrag antworten »
InformaTiger C# Ereignisse und Ereignishandler

Hallo,
ich wollte fragen ob es in C# oder allgemein in der Informatik möglich ist einen Click Event Handler für mehrere Benutzersteuerelemente zu benutzen?

Das brauche ich deshalb weil in meinem Programm PictureBoxen dynamisch erzeugt werden sollen, aber den selben Klick Handler mit unterschiedlichen Aktionen dabei verwenden.

Bitte informiert mich bei unklarer Aufgabenstellung.

Wink

Lg
InformaTiger
 
Auf diesen Beitrag antworten »
Karlito RE: C# Ereignisse und Ereignishandler

Hallo,

ja das geht. Siehe Observer Pattern.

In C# gibt es ereignisse die abgefangen werden können. Wenn man einen Button hat, dann sind das bei der Vervollständigung die Einträge mit den Blitzen. So müsstest du nur einen Handler zu dem betrioffenen Ereignis hinzufügen.

Konkret für den Button guckst Du hier. (Ein Button ist ein Control, also erbt von Control)

VG,

Karlito
Auf diesen Beitrag antworten »
Karlito

Sorry, nicht ganz vollständig...

Guckst Du außerdem hier

Codebeispiel für den Button:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
public void ButtonCreator(){
 Button btn = new Button();
 btn.Click += new EventHandler(ClickHandler); //Hier kkönnen mit += beliebig viele hinzugefügt werden
 //DoStuff with Button...
}

void ClickHandler(object sender, EventArgs args){
 //DoStuff
}


VG,

Karlito
Auf diesen Beitrag antworten »
InformaTiger

Wie kann ich aber dann unterscheiden welcher Button das Event aufruft?

verwirrt

Lg
InformaTiger
 
Auf diesen Beitrag antworten »
eulerscheZahl

void ClickHandler(object sender, EventArgs args)
sender hat die Funktion aufgerufen.

Edit: etwas konkreter
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
private void Form1_Load(object sender, EventArgs e)
{
    button1.Click += new EventHandler(ClickHandler);
    button2.Click += new EventHandler(ClickHandler);
    button3.Click += new EventHandler(ClickHandler);
    button4.Click += new EventHandler(ClickHandler);
}

public void ClickHandler(object sender, EventArgs e)
{
    MessageBox.Show("geklickt: " + ((Button)sender).Name);
}
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »