首页 > 解决方案 > 在另一个表单上引发事件

问题描述

我在 VB.Net 中有两个单独的表单(用户控件 A 和 B)。当一个按钮点击 formB 时,我想要一个在 formA 上引发的事件。怎么能这样做?我搜索了 stackoverflow.com 并检查了几个相关的解决方案,但它们对我不起作用。我不知道是什么问题!请帮我。例如,我尝试了以下代码:

甲型:

Dim MyEditForm As New ucEmployeeTimeEdit
'some code for showing and preparing MyEditForm 
Private Sub GetSomeClick() Handles MyEditForm.MyClick
    System.Console.WriteLine("test")
End Sub

形式B:

Public Event MyClick()
Private Sub BtnDelet_Click(sender As Object, e As EventArgs) Handles btnDelet.Click
    RaiseEvent MyClick()
End Sub

标签: vb.net

解决方案


虽然 Idle_Mind 的答案很棒,但这是一种具有不同优势的替代方法。(编辑:我刚刚注意到他也提到了这一点,所以你可以认为这是对这个主题的阐述)

如果您将 FormB 作为 FormA 中的模态变量,您可以告诉 VB 您要使用它的事件。这里有一些骨架代码向您展示:

Public Class FormA
    Private WithEvents myFormB As FormB

    'rest of the code for FormA
    'you can use FormB's events like this

    Private Sub GetSomeClicks() Handles myFormB.MyClick
        'code code code
    End Sub
End Class

Public Class FormB
    Public Event MyClick()
End Class

玩得开心!


推荐阅读