2010-04-29 2 views
0

В System.Windows.Forms есть PropertyGrid, который отображает свойства подключенного объекта. Скажем MyTextBox : TextBox.Элементы фильтра в PropertyGrid

Теперь я хотел бы показать на нем некоторые свойства MyTextBox, скажем только Size, Location и мое обычное свойство Date.

Более того, я хотел был бы иметь возможность изменить имена недвижимого имущества, скажем «Измерение», «Место» и «Дата начала».

Я видел два проекта на эту тему: first и second, но сначала не работает (для доступных для просмотра свойств), а второй, кажется, добавляет событие для каждого изменения свойств, это неприемлемо.

ответ

0

Вы должны быть в состоянии скрыть их атрибутом [Browsable(false)]. Если вы хотите изменить имя, вам нужно написать свой собственный TypeDescriptor, как показано here

+0

Да, но я написал о TextBox. Я не могу переопределить все свойства TextBox атрибутом Browsablefalse. – serhio

+0

Моя ошибка ... Я полностью упустил базовый класс. Вы можете использовать ту же технику в списке CustomTypeDescriptor I, чтобы отфильтровать свойства, которые вы хотите, а также изменить их имена. –

+0

та же техника (?) .. хмм .. Я пробовал код, который он не компилирует (неопределенный метод GetFriendlyname в классе FriendlyNamePropertyDescriptor), отмеченный: «// заменяем код, чтобы вернуть дружественное имя», но что мне там заменить? – serhio

Смежные вопросы