一般如何从控件中取消事件?

How to unwire event from control generically?

我需要暂时从我的 NumericUpDown 控件中取消一些事件,因为我正在以编程方式更改它们并且不想触发 ValueChanged 事件。代码应如下所示:

private void UnwireNUD (NumericUpDown nud) {
   nud.ValueChanged -= numericUpDown_ValueChanged;
}

numericUpDown_ValueChanged部分是我不知道如何引用的部分。以前有没有人这样做过并且不介意提供一些帮助?

在C#中,事件委托是隐藏信息。如果你说“我的 NumericUpDown”,你控制它的源代码吗?如果没有,你只能通过反射来做,你不应该这样做。唯一的其他选择是以一种或另一种方式更改订阅者,例如使用标志并忽略方法调用,或者使用具有某种抑制逻辑的包装器对象。

一般来说,假设所有订阅者都对活动不感兴趣似乎很危险。