Button.PerformClick做什么?

时间:2013-08-09 19:24:57

标签: c# .net winforms

我知道这可能是一个微不足道的问题,但我只是想知道调用Button.PerformClick是否有任何优势,而不是直接调用按钮的click事件。 MSDN文档简单地说:

  

为按钮生成Click事件。

这是否意味着它只是调用按钮的click事件或者还有其他一些特殊优势?

1 个答案:

答案 0 :(得分:12)

对订阅事件一无所知的外部调用者不能简单地调用click处理程序 - 事件不允许您获取有关订阅者的信息。因此,这种方法可以分离关注点,这样外部呼叫者就可以“玩得很好”。

此外:

  • 确保应用虚拟方法的任何多态性
  • 它适用任何规则 - 例如:禁用按钮

如果您确实了解事件处理程序,并且您没有使用多态,并且您不关心它是否被禁用,并且您不需要担心事件处理程序您还不知道关于 - 然后通过各种方式:只需调用事件处理程序方法。