Поделиться через


BC30506. Для обработки предложения требуется переменная WithEvents, определенная в содержаемом типе или одном из его базовых типов.

Вы не указали переменную WithEvents в предложении Handles . Ключевое Handles слово в конце объявления процедуры приводит к обработке событий, вызванных переменной объекта, объявленной с помощью ключевого WithEvents слова.

Идентификатор ошибки: BC30506

Исправление этой ошибки

Укажите необходимую WithEvents переменную.

Пример

В следующем примере Visual Basic создает ошибку BC30506 компилятора, так как ключевое слово WithEvents не используется в определении экземпляра System.Timers.Timer .

Imports System.Timers

Module Module1
    Private _timer1 As New Timer() With {.Interval = 1000, .Enabled = True}

    Sub Main()
        Console.WriteLine("Press any key to start the timer...")
        Console.ReadKey()
        _timer1.Start()
        Console.ReadKey()
    End Sub

    Private Sub Timer1_Tick(sender As Object, args As EventArgs) Handles _timer1.Elapsed
        Console.WriteLine("Press any key to terminate...")
    End Sub
End Module

Следующий пример успешно компилируется, так как _timer1 переменная определена с ключевым словом WithEvents :

Imports System.Timers

Module Module1
    Private WithEvents _timer1 As New Timer() With {.Interval = 1000}

    Sub Main()
        Console.WriteLine("Press any key to start the timer...")
        Console.ReadKey()
        _timer1.Start()
        Console.ReadKey()
    End Sub

    Private Sub Timer1_Tick(sender As Object, args As EventArgs) Handles _timer1.Elapsed
        Console.WriteLine("Press any key to terminate...")
    End Sub

End Module

См. также