![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
В WinControl-ах есть обработчик события StyleChange, но никаких способов изменить Style не нашел...
Что делать если мне необходимо задать стили прорисовки не на форме а на дочерних контролах? |
|||
|
||||
| diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
У контролов есть protected метод StyleChange.
Это надо предусмотреть в самих контролах. Произвести от нужных контролов свои собственные и отлавливать событие StyleChange формы(или что там надо). А ещё лучше создать своё событие и инициировать его когда надо. В обработчике соответствующего события формы вызывать метод SetStyle, наследуемого контрола. И размещать на форме именно эти контролы. На нужное событие они будут менять стиль. ЗЫ А вообще-то (ИМХО) - это плохая идея. Все стили, нужные для использования, представлены соответствующими свойствами контролов, с ними и надо работать. Это сообщение отредактировал(а) diadiavova - 12.11.2008, 16:26 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Да изначально то и был вопрос как задать стиль контролу (не Form), а про событие StyleChanged я упомянул в том смылсе, что если оно есть - значит и стиль можно менять... |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Некоторые стили недоступны через свойства, например AllPaintingInWmPaint или Selectable или OptimizedDoubleBuffer. Такие стили только SetStyle установить может. Кстати установку стилей можно в конструктор контрола запихнуть. -------------------- ![]() |
|||
|
||||
| diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Да эти все примочкой формой от контрола наследуются, так что тут разницы нет.
По идее событие должно возникать при изменении соответствующих свойств. Ну если речь о таких стилях - то конечно, только если всё ставить через SetStyle система слишком мудрёная получится. Без особой нужды по-моему заморачиваться не стоит. Я собсно только об этом. А если всё же нужда есть, то можно свойство соответствующее создать. По крайней мере это в общую картину впишется. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Дык я никак не понял, можно ли контролу в итоге стиль задать или нет?
Форме задаю стиль допустим (StyleType.AllPaintningInWmPaint | StyleType.UserPaint, true) дабы избежать мерцания при перерисовке (в подробности самих стилей на вдавался, просто воспользовался советом), а вот другой контрол в той-же форме, например PictureBox тот же самый или ListBox мерцает. Как исправить? |
|||
|
||||
| diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Видимо создать свой контрол на базе нужного и сделать это при помощи SetStyle. Учитывая, что это protected метод.
Что-то в этом роде. А если надо менять значение флажка - то свойство создать
Что-то в этом роде. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |