Использование редактора пользовательского интерфейса во время выполнения по нажатию кнопки

У меня есть собственный редактор пользовательского интерфейса для свойства на С#. Редактор отлично работает во время разработки. Как бы я ни хотел запускать редактор нажатием кнопки во время выполнения. Как я могу это сделать?

Спасибо, Датте.


person dattebayo    schedule 12.01.2010    source источник
comment
Используйте PropertyGrid, это точно такой же элемент управления, который используется дизайнером в окне свойств.   -  person Hans Passant    schedule 12.01.2010


Ответы (2)


Использование UITypeEditor в пользовательских (например, во время выполнения) сценариях, безусловно, является хитростью. Наиболее очевидная часть запуска UITypeEditor довольно тривиальна: просто приведите экземпляр к UITypeEditor и вызовите EditValue или любой другой метод, который вы хотите.

Одна из самых сложных частей при их использовании — выяснить, какой контекст дескриптора типа предоставить, и еще сложнее — выяснить, какие услуги предоставить.

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

То, что вы пытаетесь сделать, определенно возможно (очевидно, Visual Studio может это сделать), но это может быть очень сложно.

Что вы уже пробовали и что не работает?

person Eilon    schedule 12.01.2010

Вот пример, который у меня есть: http://xacc.svn.sourceforge.net/viewvc/xacc/xacc/Controls/UIEditorForm.cs?revision=7&view=markup

person leppie    schedule 12.01.2010