Gdno Ответов: 1

Как скрыть свойство во время разработки


Привет,

У меня есть пользовательский элемент управления, и я хотел бы, чтобы одно из его свойств было скрыто, если во время разработки выбрано более одного элемента управления.

Public Class TextBoxEx
    Inherits TextBox
    Public Property MyProperty As String
End Class

Предположим, я положил два TextBoxEx в свою форму. Если я выберите TextBoxEx1 в "свойства myproperty" свойства отображается в таблице свойств PropertyGrid, но если я выберите два он не появится.

Что я уже пробовал:

Я попытался сделать это с помощью ControlDesiger, но не смог, возможно, из-за отсутствия знаний этого класса.

1 Ответов

Рейтинг:
11

OriginalGriff

Вы можете скрыть унаследованное свойство во время разработки, установив его атрибут EditorBrowsable: Скрытие наследуемых свойств и задач в производных классах[^] - показанный код-это C#, но он очень похож на VB: Обзор атрибутов (Visual Basic) | Microsoft Docs[^]

Но динамически добавлять или удалять элементы в зависимости от количества выбранных элементов не сложнее: установите для атрибута MergableProperty значение false.
Класс MergablePropertyAttribute (System.ComponentModel) | Microsoft Docs[^]


Gdno

Большое вам спасибо, это то, что мне было нужно.

OriginalGriff

Всегда пожалуйста!

Maciej Los

5ed!

BillWoodruff

+5