首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WithEvents+Handles+Overrides

WithEvents+Handles+Overrides
EN

Stack Overflow用户
提问于 2013-02-02 07:33:40
回答 2查看 299关注 0票数 0

假设我有一个对象(例如,Form1)的一个成员(例如,Button1),它使用事件(例如,Form1.Button1_Click)来删除,并且在该对象中有一个具有'Handles‘的处理程序。

如果我覆盖它(比方说,Form2.Button1_Click),处理程序会调用被覆盖的版本(如me.Button1_Click)还是带有实际句柄的版本(如MyClass.Button1_Click)?

这是我尝试过的:

代码语言:javascript
复制
Public Class Form1

    Public Overridable Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox("Form1's Button")
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim f2 As New Form2
        f2.Show()
    End Sub
End Class

Public Class Form2
    Inherits Form1

    Public Overrides Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        MsgBox("Form2's Button")
    End Sub

End Class
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-02 12:05:19

指定Overridable修饰符表示可以重写该方法。

To override是to reject or cancel (a decision, view, etc.)__。

Overrides指定该方法将覆盖现有的事件处理程序实现。Form1中的现有方法将永远不会被调用,除非您手动调用它。您可以使用MyBase关键字手动调用它,该关键字本质上允许您引用当前实例的基类。

代码语言:javascript
复制
Public Overrides Sub Button1_Click(sender As Object, e As EventArgs)
    MessageBox.Show("SecondForm's Button")
    MyBase.Button1_Click(sender, e)
End Sub
票数 0
EN

Stack Overflow用户

发布于 2013-02-02 07:37:34

被重写的版本称为。当我在Form1上点击button1时,我得到了“Form1的按钮”。当我使用button2启动第二个表单时,我单击了button1,并获得了“Form2的按钮”

正因为如此,任何人尝试在谷歌上搜索它,都没有找到像我一样的东西,我花了我生命中的10分钟来测试它,现在其他人都不需要了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14656866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档