Хорошо, я боролся с этим в течение нескольких дней, и я нахожусь на своем конце ... Я пытаюсь добавить свойство просмотра, которое видно в PropertyGrid во время выполнения, Органы управления. Независимо от того, что я делаю, iExtenderProvider фактически не работает.VB.Net Расширение объекта IExtenderProvider
iExtenderProvider находится во втором проекте, и ссылка была добавлена в основной проект. (Код ниже)
Imports System.ComponentModel
Imports System.Windows.Forms
Public Class ControlArray
Inherits Component
Implements IExtenderProvider
<Browsable(True)> Public ReadOnly Property Count As Integer
Get
Return 0
End Get
End Property
Public Function CanExtend(ByVal extendee As Object) As Boolean Implements IExtenderProvider.CanExtend
Return TypeOf extendee Is Control
End Function
End Class
Я тогда построить второй проект, вернитесь к первому проекту, и ничего в окне моего свойства, я экземпляр элемента управления в коде, а затем попытаться найти мой «Count» собственность и там ничего нет. Любые предложения относительно того, что может быть проблемой?
Это не совсем правильный способ реализации 'IExtenderProvider' - некоторые вещи отсутствуют. И 'IExtenderProvider' хорошо работает с VS IDE, но это не связано с PropertyGrid, потому что это использует отражение для получения свойств - вам понадобится TypeConverter – Plutonix
Чтобы уточнить, ExtenderProvider используется для добавления свойств во время разработки в VS. Они не являются реальными свойствами (см. Синтаксис добавления текста всплывающей подсказки). Для среды исполнения вам понадобится «TypeConverter» и пользовательский «PropertyDescriptor». Это много кода шаблона и, похоже, много работы для свойства RO. – Plutonix
Был только отправной точкой ... конечный результат должен был быть интегрирован, чтобы иметь возможность получить псевдоним в PropertyGrid, чтобы пользователь мог «изменить имя управления» во время выполнения. –