Olası Çoğalt: How would that be possible to remove all event handlers of the Click event of a Button?Tüm Click olay işleyicileri nasıl kaldırılır?
Ben bir düğmeden tüm tıklama etkinliği işleyicileri kaldırmak istiyorum. Bu yöntemi Yığın Taşması sorusu How to remove all event handlers from a control'da buldum. Bu yöntemin herhangi bir son sürümü var mı
typeof(Control).GetField("EventClick", BindingFlags.Static | BindingFlags.NonPublic);
Ve bu yöntem 2006.
yazılmış:
private void RemoveClickEvent(Button b)
{
FieldInfo f1 = typeof(Control).GetField("EventClick",
BindingFlags.Static |
BindingFlags.NonPublic);
object obj = f1.GetValue(b);
PropertyInfo pi = b.GetType().GetProperty("Events",
BindingFlags.NonPublic |
BindingFlags.Instance);
EventHandlerList list = (EventHandlerList)pi.GetValue(b, null);
list.RemoveHandler(obj, list[obj]);
}
Ama bu çizgi her zaman null döndürür?
Not: WPF ve .NET 4.0 ile çalışıyorum.
elimden null'ın niçin döndüğüne çok fazla yardım etmeyin, ama @JonSkeet'in http://stackoverflow.com/questions/6828054/how-would-that-be-possible-to-remove-all-event-handlers adresinde oldukça iyi bir cevabı var. -o-click-olayı-of-a, bunun neden yansıması olmadan mümkün değildir. Belki de soruna farklı şekilde yaklaşmanız gerekir. –
Başarmaya çalıştığınız temel amacı/sorunu çözmeye çalıştığınız sorun nedir? – RQDQ
WinForms kodunu WPF'ye uyguladığınızı biliyor musunuz? – Douglas