BeginInvoke sur une méthode par Reflection delegate
Bonjour ŕ tous, je bloque sur l'appel par reflection d'une méthode.
Voici le code du formulaire frm_DelOd, j'ai plusieurs formulaire qui sont appelés depuis un formulaire principale.
Ils contiennent tous un " void frm_Calling(Control cntrl, MethodInvoker mthInvoke) "
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public partial class frm_DelOld : Form
{
delegate void myDelegate(Control cntrl, MethodInvoker mthInvoke);
private void myMethod(Control cntrl, MethodInvoker mthInvoke)
{
if (InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate { myMethod(cntrl, mthInvoke); }));
return;
}
else
{
cntrl.Invoke(mthInvoke);
}
}
public void frm_Calling(Control cntrl, MethodInvoker mthInvoke)
{
myDelegate myDlgt = new myDelegate(myMethod);
myDlgt.Invoke(cntrl, mthInvoke);
}
} |
Dans mon code principale je veux effectuer sur tous mes formulaires ouverts un appel via frm_Calling, soit
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
foreach (Form frm in Application.OpenForms)
{
try
{
Type myType = frm.GetType();
System.Reflection.MethodInfo getMyMethod = myType.GetMethod("frm_Calling");
// Vérifier que le getMyMethod existe bien avant de poursuivre...
if (!frm.IsAccessible)
{
// frm.BeginInvoke(getMyMethod(frm, new MethodInvoker(BringToFront)); // Erreur car bien sur c'est pas getMyMethod qu'il faut que j'appelle
}
}
catch (Exception ex)
{
}
} |
Bon j'ai une erreur sur le frm.BeginInvoke(getMyMethod) car c'est juste un MethodInfo ... comment dois-je faire pour appeler le delegate ?