表单 VB 之间的交换事件问题

Problem with exchange events between form VB

提问人:Noob_Programmer 提问时间:11/7/2023 最后编辑:Noob_Programmer 更新时间:11/7/2023 访问量:33

问:

我需要在 Form1 和 DialogWindow 之间交换一些值。 这是我的主窗体中的代码(创建事件,创建引发事件的函数,并调用该函数)

表格 1

Public Event station_changed(ByVal sender As Object, ByVal e As String)  
      'form 1 code

      'Here the code when i need to rase the event 
       OnStationChange(CheckBox1.Text)
Public Overridable Sub OnStationChange(ByVal e As String)
    RaiseEvent station_changed(Me, e)
End Sub

对话窗口

Public WithEvents main_form As Form1

'dialog code 

Public Sub station_change(ByVal sender As Object, ByVal e As String) Handles main_form.station_changed

      'do something
    End Sub

我真的不知道为什么这个保持不起作用。有人可以解释一下解决方案吗?

vb.net WinForms 事件 处理程序

评论

0赞 jmcilhinney 11/7/2023
这个问题与VBA无关,所以我删除了该标签。请不要添加不相关的标签。
0赞 jmcilhinney 11/7/2023
OT,你的声明有点狡猾。我建议您阅读本文并更严格地遵循标准约定。
0赞 jmcilhinney 11/7/2023
你是否真的将引发事件的对象分配给了你的对话领域?我猜不会,因为你还没有给我们看。Form1main_form
1赞 jmcilhinney 11/7/2023
你究竟是如何创建和显示对话的?我认为,在这里,活动可能不是最佳选择。鉴于它在首先创建对话时具有对对话的引用,因此它保留该引用并在需要传入数据时直接调用方法会更合适。这样,对话就不必知道创建它的形式,因此它更加灵活。让这些关系只以一种方式进行要好得多。Form1Form1
0赞 Noob_Programmer 11/7/2023
多亏了@jmcilhinney,问题是我需要将 Form1 对象分配给 main_form 变量。为了回答第二个问题,我打开了对话框,并将其锚定到表单 1 的面板上,所有这些都只是为了满足图形需求

答: 暂无答案