使用事件处理程序与重写事件触发方法我正在创建Button的子类,并希望为其某些事件添加自定义,例如OnClick函数。这是更理想的方式吗?我是否覆盖OnClick:protectedoverridevoidOnClick(EventArgse){base.OnClick(e);做东西();或者我应该通过设计器将OnClick事件链接到我的Button子类中定义的事件处理程序吗?classButtonSubclass{publicButtonSubclass():base(){InitializeComponent();}privatevoidInitializeComponent(){this.Click+=newSystem.EventHandler(this.ButtonSubclass_Click);编辑:我添加了一些小的视觉变化(可能作为基础皮肤传递),但大部分变化都在事件处理程序中,我不想在每个重用它的表单上重新实现(复制粘贴).如果您真的专注于按钮,那么覆盖OnClick是有意义的。如果您实际上只是更改单击按钮时发生的情况,我不会首先将Button子类化-我只会添加事件处理程序。编辑:只是为了提供更多想法-如果您想为多个按钮添加类似的事件处理程序,可以通过编写一个实用程序方法并从多个地方调用它来轻松完成。它不需要实际的子类化。当然,这并不是说在您的情况下子类化绝对是错误的-只是为了给您额外的选择:)继承时始终覆盖OnClick。它为您提供更好的性能。实际上,附加事件处理程序而不是覆盖方法有一个优势。您的事件处理程序是私有的,您重写的方法必须使用预定义的名称进行保护。如果您使用混淆/加密工具来保护您的应用程序,您的代码保护覆盖比私有代码更容易暴露。对于按钮点击,我会将其用作阅读方法。但我想这是个人喜好的问题。我很想知道共识是什么。以上就是C#学习教程的全部内容:使用事件处理器和重写事件触发方法。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
