Laden...

C# System-Event überladen

Erstellt von Frokuss vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.432 Views
F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 8 Jahren
C# System-Event überladen

Guten Abend,

ich bräuchte da mal einen Anhaltspunkt, in wie fern ich ein Event überladen kann... Bzw. eine Funktion aufrufen kann (die Event-Parameter brauche ich eigentlich gar nicht).

PictureBox pb = new PictureBox();
pb.Click += new MouseEventHandler(NaviClick);//normaler Aufruf
private void NaviClick(object sender, MouseEventArgs evt)//normale Event-Funktion

Ich bräuchte aber eher sowas:

pb.Click += new MouseEventHandler(NaviClick("value"));//überladener Aufruf
private void NaviClick(object sender, MouseEventArgs evt, String val)//Überladene
//oder
private void NaviClick(String val)//Würde mir reichen

Leider habe ich keine Ahnung wonach ich suchen müsste...

Besten Dank Frokuss

16.842 Beiträge seit 2008
vor 8 Jahren

System-definierte/Fremde EventArgs erweitern ist nicht.
Musst Dir ein geeigneten Platz zum Zwischenspeichern suchen.

F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 8 Jahren

Enttäuschend. Aber recht herzlichen Dank.

Frokuss

463 Beiträge seit 2009
vor 8 Jahren

Warum enttäuschend? Jedes WinForm Control besitzt ein Tag Attribut - dort kannst du doch ohne Probleme Werte zwischenspeichern...


PictureBox pb = new PictureBox();

pb.Tag = "value";
pb.Click += new MouseEventHandler(NaviClick);

In deinem Event kannst du dann über:


private void NaviClick(object sender, MouseEventArgs)
{

    string value = this.Tag;

}

darauf zugreifen. Sollte dir ein Wert nicht reichen kannst du ja auch eine Verweis auf deine Klasse in Tag speichern...

S
93 Beiträge seit 2008
vor 8 Jahren

Du kannst Dir aber auch eigene Steuerelement bauen und die von dem original Steuerelement ableiten. Da kannst Du dir dann Deine Events selbst definieren.