VB6 Uygulaması tarafından kullanılan dotNet Kontrolünün varsayılan özelliğini ayarlamanız gerekiyor.dotNet Interop için varsayılan özellik Usercontrol
<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 Özellik hile yapmaz.
Sıfırdan DispId öğesini elle ayarlayan here numarasını okudum. Bunu Ama eğer:
<DispId(0)> Public Property NewProperty() As String
Visual Basic nazik dispID Sıfır DefaultPropertyToolboxData için ayrılmıştır bana bildirir. Evet. Bunu biliyorum. Bunu istiyorum. Ama nasıl?
Düzenleme:
Default Public Property NewProperty(ByVal foo As Integer) As String
özelliği olarak iş şimdi VB6 varsayılan özellik olarak gösterir yapar.
aStringVariable = myUserControlInstance
This MSDN article bu konuda bazı bilgiler: Böyle bir şey yapacak ki, değiştiremez kod olmadığından Ama bu, benim sorunu çözmez.
Sarma makinesinin VB6 kullanıcı denetimi var mı? Ya da dotNet tarafında biraz büyü yapabilir miyim? – dummy
Seçiminiz. Sarmalayıcı, varsayılan özelliği istediğiniz gibi çalışmasını sağlamak dışında orijinal denetimi hemen hemen yineleyecektir. Eğer herhangi bir parametresi olmayan bir varsayılan özelliği kullanmak istiyorsanız, o zaman kesinlikle kullanıcı gereksiniminizi kullanmanız gerekir. –
Görüşünüz için teşekkür ederiz. Kimsenin cevap vermemesi halinde bu cevabı birkaç gün içinde kabul edeceğim. – dummy