2010-11-05 23 views
5

C# 'da şöyle bir şey yapabilirim:VB.NET'teki bir etkinlikten gerçek bir EventHandler temsilci örneğini nasıl alabilirim?

EventHandler handler = this.SomeEvent; 

... ki bu da bana şunları yapmamı sağlar:

Delegate[] attachedHandlers = handler.GetInvocationList(); 

VB.NET’de Benzer bir şeyin nasıl yapılacağını anlamaya.

Bu çalışmaz:

Dim handler As EventHandler = Me.SomeEvent 

... aşağıdaki hatadan dolayı:

Public Event SomeEvent(sender As Object, e As EventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.

Ancak bu çalışmaz:

Dim handler As EventHandler = AddressOf Me.SomeEvent 

.. .because:

'AddressOf' operand must be the name of a method (without parentheses).

Peki VB.NET'deki bir olaydan aslında bir EventHandler nasıl alabilirim? Akla gelen tek düşünce, yansımayı kullanmaktır, ama bu oldukça saçma görünebilir.

cevap

6
Private Event MyEvent() 
    Private delegates() As System.Delegate = MyEventEvent.GetInvocationList() 

belgesiz, here

+0

güzel buldum. Bunu hiç görmedim – jasper

+1

Ben de! Bir "VB.Net-geliştirici-yok bakın" -den biri –

+0

Ah, sevgili Tanrım ... –

İlgili konular