افتراضي عقارات للDOTNET إمكانية التشغيل المتداخل Usercontrol

StackOverflow https://stackoverflow.com/questions/634559

  •  10-07-2019
  •  | 
  •  

سؤال

ولست بحاجة لتعيين الخاصية الافتراضية لمراقبة DOTNET المستخدمة من قبل تطبيق VB6.

<ComClass(myControl.ClassId, myControl.InterfaceId, myControl.EventsId)> _
<DefaultProperty("NewProperty")> _
Public Class myControl

    Public Const ClassId As String = "86252de2-ca87-4468-adbe-ad7c47747759"
    Public Const InterfaceId As String = "c1cbf1a1-24bb-46c3-88a4-813eb4917845"
    Public Const EventsId As String = "954ed890-011c-4908-ab33-610159fe6eb1"

    Private newPropertyValue As String
    Public Property NewProperty() As String
        Get
            Return newPropertyValue
        End Get
        Set(ByVal value As String)
            newPropertyValue = value
        End Set
    End Property
End Class

وDefualtProperty على خاصية لا تفعل خدعة.

ولقد قرأت هنا أن وضع DISPID يدويا إلى الصفر ينبغي أن تفعل خدعة. ولكن إذا كنت تفعل هذا:

<DispId(0)> Public Property NewProperty() As String

والبصرية الأساسية التكرم يبلغني أن DISPID صفر محجوز لDefaultProperty. بلى. وأنا أعلم ذلك. اريد ذلك. ولكن كيف؟

وتحرير:

Default Public Property NewProperty(ByVal foo As Integer) As String

هل تعمل كما يبين الملكية الآن على النحو الخاصية الافتراضية في VB6. ولكن هذا لن يحل المشكلة، وذلك لأن هناك رمز التي لا أستطيع تغييرها، والتي سوف تفعل شيئا مثل هذا:

aStringVariable = myUserControlInstance

هذه المقالة MSDN لديه بعض المعلومات حول هذا الموضوع.

هل كانت مفيدة؟

المحلول

<اقتباس فقرة>   

ولأن هناك رمز التي لا أستطيع   تغيير

وإذا كان هذا هو الحال بعد ذلك كنت بحاجة لإنشاء فئة التفاف حول فئة. NET الأصلية والتصدير أن مثل التحكم المستخدمة من قبل VB6. ثم يمكنك وضع علامة الخاصية الافتراضية كما باستخدام الكلمة الافتراضية.

نصائح أخرى

ولا توجد وسيلة أخرى سوى إنشاء مجمع في VB6 لتقليد سلوك الخاصية الافتراضية من VB6. لقد كان لإنشاء عدة عناصر تحكم المستخدم إمكانية التشغيل المتداخل وكان هذا هو السبب الرئيسي كان علينا أن التفاف عنصر تحكم إمكانية التشغيل المتداخل صافي مرة أخرى في VB6 (لتجنب الكثير من التغيير رمز واختبار الجهد الضخم).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top