|
2007/09/03(Mon) 12:04:47 編集(投稿者)
なんちゃってですが・・・、イベントコピーする事が出来ました。 以下、モジュールです。
Imports System.Reflection
''' <summary> ''' 参照先のコントロールに設定されたイベントをコントロールへ追加する ''' </summary> ''' <param name="target">コピー先のコントロール</param> ''' <param name="refCtrl">参照先のコントロール</param> ''' <param name="evName">イベントの種類("Click","Enter","Exit"..)</param> ''' <remarks>関数名は、"(コントロール名)_(イベント名)とすること"</remarks> Public Sub Copy_EventHandler(ByVal target As Control, ByVal refCtrl As Control, ByVal evName As String) On Error Resume Next
Dim ei As EventInfo = refCtrl.GetType.GetEvent(evName) Dim miAddHandler As MethodInfo = ei.GetAddMethod() Dim dl As [Delegate] = [Delegate].CreateDelegate( _ ei.EventHandlerType, _ Me, _ Me.GetType().GetMethod( _ refCtrl.Name + "_" + evName, _ BindingFlags.NonPublic Or BindingFlags.Instance _ ) _ ) Dim addHandlerArgs() As Object = {dl}
miAddHandler.Invoke(target, addHandlerArgs) End Sub
返答してくださった方々、有難うございました。</pre></pre>
|