2008-09-16 5 views
2

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

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

ответ

4

Чтобы добавить свое собственное редактирование, когда пользователь выбирает значение сетки свойств, вам необходимо реализовать класс, который происходит от 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; } 
     } 
+0

Спасибо , Это было прекрасно! Одно дополнение вместо typeof (UITypeEditor) вы можете использовать «System.Drawing.Design.UITypeEditor, System.Drawing, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a» обнаружили, что после некоторых компиляторов erros – 2008-09-17 17:56:15

0

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

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

1

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

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

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