Мой обработчик событий никогда не вызывается, потому что исходное событие вызывается в другом обработчике событий? - PullRequest
0 голосов
/ 18 апреля 2011

Обработчики событий в моем родительском классе никогда не вызываются, хотя события возникают в дочернем классе.

Код:

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

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Я думаю, что ваша проблема связана с выбором времени. Попробуйте явно создать форму и добавить обработчики в ParentForm Load обработчик событий. (Это все набрано из памяти и не проверено, поэтому имена / подписи событий для события Load могут быть неправильными.)

Public Class ParentForm
    Friend WithEvents cf As childform

    Private Sub cf_checkboxchanged(ByVal checkbox1 As Boolean, ByVal checkbox2 As Boolean)
        My.Settings.checkbox1 = checkbox1
        My.Settings.checkbox2 = checkbox2
    End Sub

    Private Sub ParentForm_Load(ByVal sender as object, ByVal e as EventArgs) Handles Me.Load
        cf = new childForm()
        AddHandler cf.checkboxchanged, AddressOf cf_checkboxchanged
        cf.Show()
    End Sub
End Class
0 голосов
/ 19 апреля 2011

Вы можете попробовать это как альтернативный способ настройки обработчика событий,

Public Sub ShowChildForm()
     Dim frm as New childform
     AddHandler frm.checkboxchangedevent, AddressOf cf_checkboxchanged
     frm.ShowDialog()
     RemoveHandler frm.checkboxchangedevent, AddressOf cf_checkboxchanged
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...