ich Handler Anwendung hinzugefügt:Wie Ereignishandler aus der Anwendung entfernen?
Application.ThreadException += (sender, a) => UnhandledExceptionsHelper.ApplicationOnThreadException(a, null);
Danach i Wie andere Handler
Application.ThreadException += (sender, a) => UnhandledExceptionsHelper.ApplicationOnThreadException(a, param);
hinzufügen möchten, kann ich vorherige Handler entfernen?
Wenn i-Handler von Control löschen benutze ich nur:
public void RemoveOnThreadException(SimpleButton 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]);
}
Wie kann ich das gleiche tun mit Anwendung und AppDomain?
@Andrey gibt es meine Versuche mit Button.Click:
public TestForm()
{
InitializeComponent();
simpleButton1.Click += (sender, a) => simpleButton1_Click(sender,a);
simpleButton1.Click -= simpleButton1_Click;
simpleButton1.Click += (sender, a) => simpleButton1_Click(sender, a);
}
private void simpleButton1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hi");
}
Und wenn i-Taste klicken bekam ich zwei Nachrichten.
Mögliche Duplikat [Abmelden anonyme Methode in C#] (http://stackoverflow.com/questions/183367/unsubscribe-anonymous- method-in-c-sharp) – Pasick
Zwei Fragen: 1) Wenn Sie einen anderen Handler hinzufügen möchten? d. h. nach einer Benutzeraktion oder nachdem der erste Handler abgefeuert wurde 2) wo Sie "param" für den zweiten Handler erhalten? –
@Pasick das ist nicht 100% dup, weil es einige Besonderheiten in Bezug auf Application.ThreadException gibt – Andrey