【发布时间】:2010-11-04 02:36:43
【问题描述】:
我在 winform 上有一个命令按钮。所以,如果我有类似的东西:
myButton.Click += MyHandler1;
myButton.Click += MyHandler2;
myButton.Click += MyHandler3;
如何判断是否有任何特定的 MyHandler 已添加到 Click 事件中,这样它就不会在我的代码中的其他地方再次添加?
我已经阅读了如何使用 GetInvocationList() 获取自己的事件信息。但是在尝试使用各种组合获取命令按钮的项目时出现错误。它说,
“事件 'System.Windows.Forms.Control.Click' 只能出现在左侧 += 或 -=。”
我错过了什么?
[编辑] - 我想强调 Ahmad 指出的 this question。这是一个混乱,应该更容易恕我直言,但看起来它可能只是工作。
【问题讨论】:
-
你不能。您可以做的最好的事情是在添加之前
myButton.Click -= MyHandler1。 -
@Ahmad - 好眼力。我肯定不会看到那个!但是,为了清楚起见,我相信我的问题仍然有效。
标签: c# winforms reflection delegates invocation