Как изменить тип элемента управления, который используется в .NET PropertyGrid - PullRequest
2 голосов
/ 16 сентября 2008

У меня есть приложение Windows, которое использует элемент управления .NET PropertyGrid. Можно ли изменить тип элемента управления, который используется для поля значения свойства?

Я хотел бы иметь возможность использовать RichTextBox для лучшего форматирования входного значения. Можно ли это сделать без создания пользовательского класса редактора?

Ответы [ 3 ]

4 голосов
/ 16 сентября 2008

Чтобы добавить свое собственное пользовательское редактирование, когда пользователь выбирает значение сетки свойств, вам нужно реализовать класс, производный от UITypeEditor. Затем у вас есть возможность показать только небольшое всплывающее окно под областью свойств или полноразмерное диалоговое окно.

Что приятно, вы можете повторно использовать существующие реализации. Таким образом, чтобы добавить возможность многострочного редактирования строки, вы просто делаете это ...

[Editor(typeof(MultilineStringEditor), typeof(UITypeEditor))]
public override string Text
{
    get { return _string; }
    set { _string = value; }
}

Еще одна приятная вещь, которую они предоставляют для вас, - возможность редактировать массив строк ...

[Editor("System.Windows.Forms.Design.StringArrayEditor, 
         System.Design, Version=2.0.0.0, 
         Culture=neutral, 
         PublicKeyToken=b03f5f7f11d50a3a", 
         typeof(UITypeEditor))]
public string[] Lines
{
    get { return _lines; }
    set { _lines = value; }
}
1 голос
/ 16 сентября 2008

Вы можете контролировать, будет ли PropertyGrid отображать простое поле редактирования, стрелку раскрывающегося списка или многоточие.

Найдите редактор Editor и следуйте по нему. У меня где-то был образец; Я постараюсь выкопать это.

0 голосов
/ 16 сентября 2008

Я думаю, что вы ищете дескрипторы пользовательских типов. Вы можете прочитать немного и начать здесь: http://www.codeproject.com/KB/miscctrl/bending_property.aspx

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...