0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 24
|
|||||||||||
1 | |||||||||||
Мелкие сложности при создании пользовательских элементов управления22.01.2016, 11:27. Показов 1095. Ответов 1
Метки нет (Все метки)
Доброго времени суток.
Вот сижу разбираюсь с созданием своих элементов управления. В частности, интересно реализовать элементы управления, которые есть в 3D Max, а именно сворачивающуюся панель и боковую панель с компактной полоской прокрутки. Накопился ряд вопросов, на которые увы не могу найти ответ. Может кто сможет помочь? 1. Как в пользовательском элементе управления, унаследованном от UserControl и, соответственно, не имеющем свойства Text, в дизайнере при добавлении элемента на форму получить в пользовательский аналог Text-а актуальное значение свойства Name? UserControl1, UserControl2, UserControl3 и т. п., короче, как во всех готовых элементах управления, имеющих свойство Text. Добавляешь такой элемент управления и в нем сразу Text равен Name. 2. Есть пользовательский элемент управления со свойством NextPanel: В дизайнере в этом свойстве появляется ComboBox со всеми CollapsiblePanel присутствующими на форме, что не совсем удобно. Можно ли как-то редактировать этот список? Оставить там только те CollapsiblePanel, которые, например, имеют в свойстве PreviousPanel null. Неудобно как-то… Кликните здесь для просмотра всего текста
3. Можно ли в дизайнере отследить изменения элемента управления какими-то более вменяемыми способами чем приведенный ниже? В частности, хочется при перетаскивании элемента управления в дизайнере менять его привязку, что удобно, вот только там, увы, работает не все… Кликните здесь для просмотра всего текста
4. Есть панель со своей компактной полоской прокрутки. Прокрутка реализована путем изменения Location размещенных на ней контролов и анимации панелек (не знаю, может так не стоит делать, но уж больно все сложно в готовых классах… приходится изобретать велосипеды). Все бы хорошо, но при этом нельзя использовать свойство Dock так как добавленные контролы закрывают мои полоски прокрутки и вообще создают массу проблем... Хорошо было бы добавить специальную панельку, в которую перебрасывать все контролы добавляемые на пользовательский элемент управления, превратив пользовательский элемент управления в эдакого посредника. Что-то вроде specialPanel.Controls.Add(e.Control) в ControlAdded. В запущенной программе это работает хорошо, а вот в дизайнере так пропадает возможность добавлять объекты. Контрол добавляется, но тут же все откатывает назад без предупреждений об ошибке. В чем проблема? Можно ли вообще реализовать такое посредничество? Может свою прокрутку можно реализовать по-другому и проще?
0
|
22.01.2016, 11:27 | |
Ответы с готовыми решениями:
1
Взаимосвязь элементов управления при создании формы Ошибка при создании коллекции элементов управления на форме Оптимизация большого количества пользовательских элементов управления Добавление пользовательских элементов управления по нажатию на кнопку |
22.01.2016, 12:53 | 2 | |||||
UserControl имеет свойство Text. Только оно protected и не отображается в панели свойств. Если вы переопределите его следующим образом:
Для избежания этого вам нужно модифицировать ClientRectangle вашего контрола. Как описано здесь.
0
|
22.01.2016, 12:53 | |
22.01.2016, 12:53 | |
Помогаю со студенческими работами здесь
2
Добавление пользовательских элементов управления на форму, в частности, ButtonChrome Не видит dll файл при создании "Библиотека элементов управления Windows Forms" Нет шаблона "Библиотека пользовательских элементов управления WPF" Ошибка при создании пользовательского элемента управления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |