Возникла проблема при доступе к объявленному событию в vb.net

Возникла проблема при доступе к объявленному событию в vb.net.

Пожалуйста, ознакомьтесь с приведенным ниже примером. (Я изменил материал ниже, чтобы сделать его нестабильным, так как он является частью разработки пользовательских элементов управления)

Public Class Main
    Inherits ComboBox

    'Event handler for when an item check state changes.
    Public Event ItemCheck As ItemCheckEventHandler
    Private parentMainClass As Main
    Private cclb As controlClass

    Public Sub New(parentclass As Main)
        Me.parentMainClass = parentclass
        'Add a handler to notify our parent of ItemCheck events.
        AddHandler Me.cclb.ItemCheck, New System.Windows.Forms.ItemCheckEventHandler(AddressOf Me.cclb_ItemCheck)
    End Sub

    Private Sub cclb_ItemCheck(sender As Object, e As ItemCheckEventArgs)
        'If ccbParent.ItemCheck IsNot Nothing Then
            RaiseEvent parentMainClass.ItemCheck(sender,e)
        'End If
    End Sub

    Public Class controlClass
        Inherits CheckedListBox
    End Class
End Class

Проблема: RaiseEvent parentMainClass.ItemCheck(sender,e) это утверждение показывает - событие ItemCheck не существует, даже если оно существует.

Пожалуйста, руководство.

Благодарю вас

2 ответа

Объявление события;

Public Event ItemCheck As ItemCheckEventHandler

Должно быть;

Public Event ItemCheck(sender As Object, e As ItemCheckEventArgs)

Ошибка говорит вам, что она не может сопоставить событие с сигнатурой обработчика события.

Из вашего исходного кода, строка;

RaiseEvent parentMainClass.ItemCheck(sender, e)

должен быть изменен на;

RaiseEvent ItemCheck(sender, e)

Это вызывает событие ItemCheck из текущего экземпляра. Похоже, что вы хотите сделать, это вызвать событие в родительском экземпляре, что немного отличается.

Другие вопросы по тегам