A dlaczego to wykomentowane (ok doczytalem w drugim watku :) )
//if (field.Name == "EventClick")
?
Tu jest wlasnie problem z nazwami, wylistuj sobie wszytskie moze event ma inna nazwe (patrzac na net znalazlem cos takiego EVENT_CLICK). Na pewno usuniecie warunku nie pomoze, wklej na forum jakie masz field.Name (np string s ="";
i w petli s += field.Name+"\n"; i albo kopiuj albo do pliku i wklej - ciekaw jestem.)
//------------- tak jak myslalem jest to pokrecone (trzeba by sie dokladnie wczytac w opis jak to sobie MS poukladal)
Na CF 5.0 z pocket emulatorem 2003 dziala mi to
Type t = button1.GetType();
Delegate[] de = null;
do
{
FieldInfo[] fields = t.GetFields( BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic);
foreach (FieldInfo field in fields)
{
if (field.Name == "Click") // ?! moze tez tak zadziala w normalnym ?! spodziewam sie ze tak nie mam teraz czasu na testy
{
EventHandlerList eventHandlers = ((EventHandlerList)(button1.GetType().GetProperty("Events",
(BindingFlags.FlattenHierarchy | (BindingFlags.NonPublic |
BindingFlags.Instance))).GetValue(button1, null)));
Delegate d = (EventHandler)field.GetValue(button1); //tu zmiana
if ((!(d == null)))
{
de = d.GetInvocationList();
}
}
}
t = t.BaseType;
} while (t != null);
if (de != null)
{
for (int i = 0; i < de.Length; i++)
{
button2.Click += (EventHandler)de[i];
}
}
`</code>`