Ik zit met een ei. 
Ik wil in m'n WinForm applicatie events triggeren (zoals bv. de click event van een button), zonder dat ik daarvoor de naam van de functie die aan die event gekoppeld is hoef te kennen.
Met andere woorden: ik wil de method aanroepen, zonder de methodnaam te gebruiken.
In Delphi kan je het bv zo doen:
In C# kan je het ook doen met zelf gebakken delegates, als je bv deze custom delegate hebt:
Kan je de method(s) waar DoAfterOk naar 'wijst', als volgt aanroepen:
Het lukt me echter niet om dus de standaard events op die manier uit te voeren. Bv:
Hier krijg ik een compiler error op:
Er moet toch wel een manier zijn om dit te verwezenlijken? In de .NET help heb ik er echter niet direct iets over gevonden.
Ik wil in m'n WinForm applicatie events triggeren (zoals bv. de click event van een button), zonder dat ik daarvoor de naam van de functie die aan die event gekoppeld is hoef te kennen.
Met andere woorden: ik wil de method aanroepen, zonder de methodnaam te gebruiken.
In Delphi kan je het bv zo doen:
code:
1
2
3
| if Assigned (Button1.OnClick) then begin Button1.OnClick(self); end; |
In C# kan je het ook doen met zelf gebakken delegates, als je bv deze custom delegate hebt:
code:
1
2
3
| public delegate void ObserverDelegate(object sender); public Observer DoAfterOk; |
Kan je de method(s) waar DoAfterOk naar 'wijst', als volgt aanroepen:
code:
1
2
3
4
| if( DoAfterOk != null )
{
DoAfterOk(this);
} |
Het lukt me echter niet om dus de standaard events op die manier uit te voeren. Bv:
code:
1
2
3
4
5
6
| if( Button1.Click != null )
{
Button1.Click(this, null);
} |
Hier krijg ik een compiler error op:
Blijkbaar kan je dus enkel methods aan die events gaan toekennen of verwijderen, maar hoe kan je zelf die events triggeren?The event 'System.Windows.Forms.Control.Click' can only appear on the left hand side of += or -=
Er moet toch wel een manier zijn om dit te verwezenlijken? In de .NET help heb ik er echter niet direct iets over gevonden.
https://fgheysels.github.io/