Wenn Sie XData verwenden, einige DXF codes are transformed with their owner. Sie können die Codes verwenden: ExtendedDataWorldXCoordinate
(1011), ExtendedDataWorldXDisp
(1012), ExtendedDataWorldXDir
(1013), ExtendedDataDist
(1041) und ExtendedDataScale
(1042). In Ihrem Fall werde ich die Database.ObjectModified
oder DBObject.Modified
Ereignisse verwenden. Sie können this approach verwenden, um zu ermitteln, welche Eigenschaften geändert wurden.
Um eine gute Leistung zu erhalten, sollten Sie eine ObjectOverrule
verwenden, wo Sie die Open
Methode überschreiben, um den Zustand Ihrer Linienzug speichern, wenn es für Schreib- und vergleichen Sie es mit dem Zustand, in dem Close
Methode gefunden wird geöffnet. Dann können Sie Ihre XData in einem CommandEnded
Event-Handler ändern, um sicher zu sein.
Sie können auch die Ereignisse DBObject.OpenedForModify
und DBObject.ObjectClosed
verwenden.
In der Tat gibt es eine Menge Möglichkeiten, es zu tun, aber die scheint die beste Option zu sein, da Sie einen Filter für die XData festlegen können. Und wenn Sie die Methode Close
überschreiben, haben Sie direkten Zugriff auf das Objekt und seinen Status, während Sie im DBObject.ObjectClosed
-Ereignis nur die ID haben.