虽然在子类中引发了事件,但我的父类中的事件处理程序永远不会被调用。
守则:
Public Class childForm
Public Event checkboxchangedEvent(ByVal checkbox1 As Boolean, ByVal checkbox2 As Boolean)
Private Sub checkboxchanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged
RaiseEvent checkboxchangedEvent(CheckBox1.Checked, CheckBox2.Checked)
End Sub
End Class
Public Class ParentForm
Friend WithEvents cf As childform = New childform
Private Sub cf_checkboxchanged(ByVal checkbox1 As Boolean, ByVal checkbox2 As Boolean) Handles cf.checkboxchangedEvent
My.Settings.checkbox1 = checkbox1
My.Settings.checkbox2 = checkbox2
End Sub
End Class
答案 0 :(得分:0)
您可以像这样尝试设置事件处理程序的替代方法
Public Sub ShowChildForm()
Dim frm as New childform
AddHandler frm.checkboxchangedevent, AddressOf cf_checkboxchanged
frm.ShowDialog()
RemoveHandler frm.checkboxchangedevent, AddressOf cf_checkboxchanged
End Sub
答案 1 :(得分:0)
我认为你的问题是时机。尝试显式创建表单并在ParentForm
的{{1}}事件处理程序中添加处理程序。 (这些都是从内存中输入的,未经测试,因此Load
事件的事件名称/签名可能不正确。)
Load