﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / .NET / VB.NET  / Позднее связывание с событиями. / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Mon, 07 Jul 2008 01:09:55 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Позднее связывание с событиями.</title><link>http://www.relib.com/forums/Topic903628-27-1.aspx</link><description>2 Messir&lt;/P&gt;&lt;P&gt;Понятно. У меня тоже уверенности нет, что он правильно отработает, но предложить надо было :)</description><pubDate>Wed, 06 Sep 2006 09:39:08 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Позднее связывание с событиями.</title><link>http://www.relib.com/forums/Topic903628-27-1.aspx</link><description>[quote][b]bazile (01.09.2006)[/b][hr]Разве метод &lt;SPAN id=nsrTitle&gt;Object.MemberwiseClone тут не подходит?&lt;/SPAN&gt;[/quote]&lt;P&gt;Не уверен, так как речь идет не о простых классах, а об оконных. Меня терзают смутные сомнения, что после MemberwiseClone он пошлет нужные сообщения native-окну.&lt;/P&gt;&lt;P&gt;[quote]The &lt;B&gt;MemberwiseClone&lt;/B&gt; method creates a shallow copy by creating a new object, and then&lt;STRONG&gt; &lt;FONT color=#ff1111&gt;copying the nonstatic fields of the current object to the new object&lt;/FONT&gt;&lt;/STRONG&gt;. If a field is a value type, a bit-by-bit copy of the field is performed. If a field is a reference type, the reference is copied but the referred object is not; therefore, the original object and its clone refer to the same object.[/quote]&lt;/P&gt;&lt;P&gt;А свойства native-окна, даже если и кешируются в private-полях, то выставляются уж точно посылкой соответствующих сообщений окну, чего MemberwiseClone может и не делать...&lt;/P&gt;&lt;P&gt;А проверять как-то лениво... ;)</description><pubDate>Wed, 06 Sep 2006 03:51:40 GMT</pubDate><dc:creator>Messir</dc:creator></item><item><title>RE: Позднее связывание с событиями.</title><link>http://www.relib.com/forums/Topic903628-27-1.aspx</link><description>Разве метод &lt;SPAN id=nsrTitle&gt;Object.MemberwiseClone тут не подходит?&lt;/SPAN&gt;</description><pubDate>Fri, 01 Sep 2006 09:48:01 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Позднее связывание с событиями.</title><link>http://www.relib.com/forums/Topic903628-27-1.aspx</link><description>Все, проблему уже решил бог во плоти Messir :). В чем была проблема, я сейчас опишу, чтобы никто больше в эту яму не упал. &lt;br&gt;&lt;br&gt;Я делал копии объектов (это были контролы) следующей функцией:&lt;br&gt;&lt;br&gt;Function CloneObj(SrcObj as Object)&lt;br&gt;Dim DstObj as Control&lt;br&gt;'Создаю объект того же типа, что и оригинал.&lt;br&gt;DstObj=CreateInstance(SrcObj.GetType)&lt;br&gt;&lt;br&gt;'далее я назначал объекту-копии все свойства объекта-оригинала&lt;br&gt;&lt;br&gt;Dim DstProperties() As System.Reflection.PropertyInfo&lt;br&gt;Dim i as Long&lt;br&gt;DstProperties = DstObj.GetType.GetProperties&lt;br&gt;            For i = 1 To UBound(DstProperties)&lt;br&gt;                If (DstProperties(i).CanWrite) And (DstProperties(i).CanRead) Then DstProperties(i).SetValue(DstObj, DstProperties(i).GetValue(SrcObj, Nothing), Nothing)&lt;br&gt;            Next&lt;br&gt;&lt;br&gt;Return DstObj&lt;br&gt;End Function&lt;br&gt;&lt;br&gt;А потом уже полученный из этой функции объект я пытался связывать с событиями через AddHandler.&lt;br&gt;&lt;br&gt;Оказывается! Одним из свойств, которое при этом изменялось, было WindowTarget, а вот этого делать и нельзя. Это свойство системное, и если его изменить, то события все начинают поступать неведомо куда. &lt;br&gt;&lt;br&gt;Я добавил лишнее условие, исключающее назначение этого свойства, и теперь связывание с событиями происходит без проблем.&lt;br&gt;Удачи всем.&lt;br&gt;</description><pubDate>Thu, 31 Aug 2006 21:26:29 GMT</pubDate><dc:creator>Hover</dc:creator></item><item><title>RE: Позднее связывание с событиями.</title><link>http://www.relib.com/forums/Topic903628-27-1.aspx</link><description>Приложение Windows Forms имеется в виду?&lt;/P&gt;&lt;P&gt;Показывай код. Можешь даже целиком весь свой проект в виде архива к ответу прикрепить, так будет проще с ним работать.</description><pubDate>Thu, 31 Aug 2006 09:45:43 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>Позднее связывание с событиями.</title><link>http://www.relib.com/forums/Topic903628-27-1.aspx</link><description>Есть пользовательский элемент управления-контейнер. На него в процессе работы программы должны добавиться некоторые другие элементы управления (какие и сколько заранее неизвестно). Но заранее известно, что у всех этих элементов управления есть определенное событие, объявленное в интерфейсе, который эти добавляемые элементы управления реализуют (этот интерфейс в наличии есть)&lt;br&gt;Вопрос, как подписаться на это событие, чтобы при наступлении этого события в одном из добавленных элементах управления, выполнялась процедура из кода элемента пользовательского элемента управления. &lt;br&gt;Почему-то пример из семплов с AddHandler не работает :(&lt;br&gt;Могу код свой показать, но если можете сразу подсказать, как надо, то я буду очень рад :)</description><pubDate>Wed, 30 Aug 2006 21:04:49 GMT</pubDate><dc:creator>Hover</dc:creator></item></channel></rss>