簡體   English   中英

VB.NET中的事件處理

[英]Event handling in VB.NET

在VB.NET中,為什么以下自定義事件沒有觸發?

Public Class classes1
    Public Event buttonload(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Protected Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)        Handles Button2.Click
        attd.Show()
        RaiseEvent buttonload(sender, e)
    End Sub
End Class

Public Class attd
    Dim WithEvents c1 As New classes1
    Sub c1_buttonload(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c1.buttonload
        MsgBox("Event received")
    End Sub
End Class

您使用的是第一種形式, classes1 ,展現你的第二個形式, attd ,然后提高你的自定義事件。 然后在第二種形式attd ,創建第一種形式的另一個實例classes1 ,然后嘗試將處理程序附加到該實例的事件。 他們是不一樣的 ,所以不會開火。

確實不清楚您要做什么。 如果您只是嘗試嘗試事件,則可以嘗試類似的方法。

表格1

Public Class Form1
    Dim attd As Form2 = New Form2
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        attd.Show()
    End Sub

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        AddHandler attd.buttonload, AddressOf buttonLoadHandler
    End Sub

    Private Sub buttonLoadHandler(sender As Object, e As EventArgs)
        MsgBox("Event received")
    End Sub

End Class

表格2

Public Class Form2
    Public Event buttonload(ByVal sender As System.Object, ByVal e As System.EventArgs)

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        RaiseEvent buttonload(sender, e)
    End Sub
End Class

如果您只是想讓第二個表單響應“第一個表單”按鈕,請單擊嘗試類似的方法。

表格1

Public Class Form1
    Dim attd As Form2 = New Form2
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        attd.Show()
        attd.showMessageBox()
    End Sub

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

    End Sub
End Class

表格2

Public Class Form2
    Public Sub showMessageBox()
        MsgBox("Hello World")
    End Sub
End Class

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM