Новые форумы для: пользователей, администраторов, математиков и филологов.
3

Привет, Хэшкод!

Я создаю контрол, наследуясь от UserControl. К нему добавляю свойство, от которого зависит внешний вид контрола.

Теперь внимание, если присваивать это свойство в коде конструктора формы сразу после InitializeComponent(), то сначала пользователь увидит форму такой, как она выглядела у меня в режиме «дизайна мышкой», и уже после этого контрол перересуется в нужный мне вид. Плохо.

Пометить свойство с помощью BrowsableAttribute я тоже не могу, ибо тип свойства — мой собственный класс, настраивать который среда не умеет. Плохо.

Как же сделать так, чтобы инициализация свойства произошла между первыми form1.SuspendLayout() и form1.ResumeLayout(false)?


В идеале хотелось бы иметь возможность писать код, непосредственно в поля окошка «свойства». Например если свойство имеет тип MyClass, то в соответсвующее поле из окна «свойства» я бы написал new MyClass(param1, param2).

задан 22 Фев 19:45

Jofsey's gravatar image

Jofsey
1.0k9
87% принятых

изменен 22 Фев 20:22

Angry%20Bird's gravatar image

Angry Bird
609310

1

В .Net есть возможность создания своих редакторов свойств контрола на основе UITypeEditor, что как раз даст возможность изменять свойство контрола через свой пользовательский интерфейс.

Ссылки по теме:

Класс UITypeEditor

Статья: Creating Custom Controls - Providing Design Time Support

Пошаговое руководство. Реализация редактора типов пользовательского интерфейса

ссылка

отвечен 7 Апр 22:42

%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB%20%D0%90%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2's gravatar image

Павел Азанов
1.6k9

Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

ХэшКод - это совместно редактируемый форум вопросов и ответов для начинающих и опытных программистов.

Присоединяйтесь!

отмечен:

×1,133
×236
×227
×91

задан
22 Фев 19:45

показан
180 раз

обновлен
7 Апр 22:42

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии