#c_sharp #winforms #net #visual_studio
Привет, Хэшкод! Я создаю контрол, наследуясь от UserControl. К нему добавляю свойство, от которого зависит внешний вид контрола. Теперь внимание, если присваивать это свойство в коде конструктора формы сразу после InitializeComponent(), то сначала пользователь увидит форму такой, как она выглядела у меня в режиме «дизайна мышкой», и уже после этого контрол перересуется в нужный мне вид. Плохо. Пометить свойство с помощью BrowsableAttribute я тоже не могу, ибо тип свойства — мой собственный класс, настраивать который среда не умеет. Плохо. Как же сделать так, чтобы инициализация свойства произошла между первыми form1.SuspendLayout() и form1.ResumeLayout(false)? В идеале хотелось бы иметь возможность писать код, непосредственно в поля окошка «свойства». Например если свойство имеет тип MyClass, то в соответсвующее поле из окна «свойства» я бы написал new MyClass(param1, param2).
Ответы
Ответ 1
В .Net есть возможность создания своих редакторов свойств контрола на основе UITypeEditor, что как раз даст возможность изменять свойство контрола через свой пользовательский интерфейс. Ссылки по теме: Класс UITypeEditor Статья: Creating Custom Controls - Providing Design Time Support Пошаговое руководство. Реализация редактора типов пользовательского интерфейса
Комментариев нет:
Отправить комментарий