Страница: 1 |
Подскажите, плз, ламеру... Если в модуле или классе явно указан объект с ключевым словом WithEvents, тогда добавить обработчик событию просто: AddHandler MyObj.Event, AdressOf MyHandler А если я получаю объект через Reflection - тут возникают проблемы. Для этого объекта я могу получить EventInfo, у которого есть метод AddEventHandler(target as object, handler as delegate). Но как пользоваться этим методом - мне не понятно. Может кто-то подскажет? Сейчас я решил проблему следующим образом: Module 'Заранее инициализирую объект типа Form, чтобы имет доступ к его событиям Private 'Здесь получаю тип своего будущего объекта: Dim MyType As Type = Type.GetType("ArcadeApplication." + FormToShow) 'Здесь создаю экземпляр полученного типа: Dim Obj As Object = Activator.CreateInstance(MyType) CurForm = Obj ..... AddHandler CurForm.Activated, AddressOf CloseForm End Sub 'Здесь находится обработчик, который должен вызываться при Активации формы: ........ End Module Но это сработает только если я заранее знаю тип объекта, полученного через Reflection. А если нет? Добавление такой строчки должно решить проблему. Но я не понимаю как воспользоваться EvInfo.AddEventHandler()???? EvInfo.AddEventHandler() Если кто-то просвятит буду очень благодарен.
Чего, Павел, сам с собой говоришь? Или Вы разные Павлы? Ага, Вы разные... Дык там вроде идет наказание за использование похожих ников... Если ты заранее не знаешь тип объекта, может сработает преобразование CType(........., Object) или с помощью функции GetObjectType получить тип объекта а потом его Handлить. Спасибо за ответы. To Павел(Admin): по поводу ника я мылил, что у меня profile.asp никак не открывалась, просил изменить самостоятельно. Теперь открылась. За оплошность прошу простить. А касательно обработчика Obj, addressof MyHandler - не жрет зараза, хочет delegate. Создавал делегата, а он мне говорил, что, мол, делегат должен происходить(must derive) от объекта такого же типа! В этом и запара. Жаль что никто не сталкивался с таким.... Спасибо за ответы. To Павел(Admin): по поводу ника я мылил, что у меня profile.asp никак не открывалась, просил изменить самостоятельно. Теперь открылась. За оплошность прошу простить. А касательно обработчика Obj, addressof MyHandler - не жрет зараза, хочет delegate. Создавал делегата, а он мне говорил, что, мол, делегат должен происходить(must derive) от объекта такого же типа! В этом и запара. Жаль что никто не сталкивался с таким.... Страница: 1 |
Вопрос: Динамическое назначение обработчиков событий
Добавлено: 15.01.04 13:10
Автор вопроса: Павло
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 16.01.04 09:31
А если так?
EvInfo.AddEventHandler Obj, AddressOf MyHandler
Номер ответа: 2
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #2
Добавлено: 16.01.04 09:39
Номер ответа: 3
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #3
Добавлено: 16.01.04 09:43
Номер ответа: 4
Автор ответа:
VladDor
Вопросов: 17
Ответов: 47
Профиль | | #4
Добавлено: 16.01.04 10:18
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 16.01.04 11:02
Так у меня ник в HTML оформлен, а у него - нет. Я его уже просил
поменять ник, но он не ответил...
Номер ответа: 6
Автор ответа:
Павло
Вопросов: 8
Ответов: 24
Профиль | | #6
Добавлено: 16.01.04 15:35
Номер ответа: 7
Автор ответа:
Павло
Вопросов: 8
Ответов: 24
Профиль | | #7
Добавлено: 16.01.04 15:35