0

withevents (Form1.Button1_Click など) を使用して遅延されるオブジェクト (Form1 など) のメンバー (Button1 など) があり、そのオブジェクトに「Handles」を持つハンドラーがあるとします。

それをオーバーライドした場合 (Form2.Button1_Click など)、ハンドラーはオーバーライドされたバージョン (me.Button1_Click など) を呼び出すか、実際のハンドルを持つバージョン (MyClass.Button1_Click など) を呼び出しますか?

これが私が試したことです:

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
4

2 に答える 2

0

オーバーライドされたバージョンが呼び出されます。Form1 の button1 をクリックすると、「Form1 のボタン」が表示されます。button2 を使用して 2 番目のフォームを開始すると、button1 をクリックして「form2 のボタン」を取得します。

誰かがこれをググって、私のように何も見つけられないように、私はそれをテストするために私の人生の 10 分間を殺しました。

于 2013-02-01T23:37:33.850 に答える