Создайте делегат из methodinfo
У меня такая ситуация :
Dim myType As Type = Repeat_Tastendruck_Control.GetType Dim myInfo As System.Reflection.MethodInfo = myType.GetMethod("OnClick", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance) If myInfo IsNot Nothing Then Dim myDelegate As delegate_OnClick = [Delegate].CreateDelegate(GetType(delegate_OnClick), myInfo, False) 'Repeat_Tastendruck_Control.Invoke(myDelegate, Nothing) myDelegate(EventArgs.Empty) Exit Sub End If
Я получаю в myType тип Repeat_Tastendruck_Control
Я получаю в myInfo требуемый MethodInfo
Если я сейчас создам делегат для вызова этого метода, он укажет на не созданный экземпляр объекта. Так... где моя ошибка ?
Любое руководство было бы полезно ... ;)
дополнительная информация :
определение OnClick-метода :
Protected Overrides Sub OnClick(e As System.EventArgs) MyBase.OnClick(e) End Sub
определение делегата :
Private Delegate Sub delegate_OnClick(e As EventArgs)
команда " myDelegate(EventArgs. Empty) "вызывает метод right in - но не в элементе управления, на который ссылается"Repeat_Tastendruck_Control".
Что я уже пробовал:
..................................
Richard Deeming
Каково определение OnClick
метод, а также delegate_OnClick
делегировать?
Ralf Meier
Спасибо за ответ, Ричард. Я обновил/улучшил свой вопрос.
Ralf Meier
Привет Ричард,
Мне очень жаль, но я должен еще раз задать вам этот вопрос.
К вашему сведению: код, который вы мне дали, хорошо работает до сих пор - с одним исключением (и это мой дополнительный вопрос к нему) :
Когда я работаю с элементом управления, где я переопределил метод "OnClick", он работает.
Но когда я работаю с элементом управления, который дает этот метод (я думаю, что он исходит из атрибута Protected-attribute) Я не могу получить делегат - но MethodInfo является правильным и таким же, как MethodInfo из моего производного элемента управления.
Не могли бы вы указать мне еще раз ?..
Richard Deeming
Вероятно, лучше всего опубликовать это как новый вопрос с примером кода, который вы используете.
Ralf Meier
ОК... Я сделаю все, что в моих силах ... ;-)