Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Control Styles, Задавать стили рисования контролов 
:(
    Опции темы
EgoBrain
Дата 12.11.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



В WinControl-ах есть обработчик события StyleChange, но никаких способов изменить Style не нашел... 
Что делать если мне необходимо задать стили прорисовки не на форме а на дочерних контролах?
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 12.11.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(EgoBrain @  12.11.2008,  13:20 Найти цитируемый пост)
В WinControl-ах есть обработчик события StyleChange, но никаких способов изменить Style не нашел...

У контролов есть protected метод  StyleChange.
Цитата(EgoBrain @  12.11.2008,  13:20 Найти цитируемый пост)
Что делать если мне необходимо задать стили прорисовки не на форме а на дочерних контролах?

Это надо предусмотреть в самих контролах. Произвести от нужных контролов свои собственные и отлавливать событие StyleChange формы(или что там надо). А ещё лучше создать своё событие и инициировать его когда надо.
 В обработчике соответствующего события формы вызывать метод SetStyle, наследуемого контрола. И размещать на форме именно эти контролы. На нужное событие они будут менять стиль.

ЗЫ
А вообще-то (ИМХО) - это плохая идея. Все стили, нужные для использования, представлены соответствующими свойствами контролов, с ними и надо работать.

Это сообщение отредактировал(а) diadiavova - 12.11.2008, 16:26


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
EgoBrain
Дата 13.11.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Цитата

ЗЫ
А вообще-то (ИМХО) - это плохая идея. Все стили, нужные для использования, представлены соответствующими свойствами контролов, с ними и надо работать.

Да изначально то и был вопрос как задать стиль контролу (не Form), а про событие StyleChanged я упомянул в том смылсе, что если оно есть - значит и стиль можно менять...
PM MAIL ICQ Skype   Вверх
mr.DUDA
Дата 13.11.2008, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(diadiavova @  12.11.2008,  15:51 Найти цитируемый пост)
А вообще-то (ИМХО) - это плохая идея. Все стили, нужные для использования, представлены соответствующими свойствами контролов, с ними и надо работать.

Некоторые стили недоступны через свойства, например AllPaintingInWmPaint или Selectable или OptimizedDoubleBuffer. Такие стили только SetStyle установить может. Кстати установку стилей можно в конструктор контрола запихнуть.


--------------------
user posted image
PM MAIL WWW   Вверх
diadiavova
Дата 13.11.2008, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(EgoBrain @  13.11.2008,  10:40 Найти цитируемый пост)
Да изначально то и был вопрос как задать стиль контролу (не Form)

Да эти все примочкой формой от контрола наследуются, так что тут разницы нет.
Цитата(EgoBrain @  13.11.2008,  10:40 Найти цитируемый пост)
а про событие StyleChanged я упомянул в том смылсе, что если оно есть - значит и стиль можно менять

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

Цитата(mr.DUDA @  13.11.2008,  11:15 Найти цитируемый пост)
Некоторые стили недоступны через свойства, например AllPaintingInWmPaint или Selectable или OptimizedDoubleBuffer. Такие стили только SetStyle установить может. Кстати установку стилей можно в конструктор контрола запихнуть. 

Ну если речь о таких стилях - то конечно, только если всё ставить через SetStyle система слишком мудрёная получится. Без особой нужды по-моему заморачиваться не стоит. Я собсно только об этом. А если всё же нужда есть, то можно свойство соответствующее создать. По крайней мере это в общую картину впишется.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
EgoBrain
Дата 13.11.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Дык я никак не понял, можно ли контролу в итоге стиль задать или нет?  smile 
Форме задаю стиль допустим (StyleType.AllPaintningInWmPaint | StyleType.UserPaint, true) дабы избежать мерцания при перерисовке (в подробности самих стилей на вдавался, просто воспользовался советом), а вот другой контрол в той-же форме, например PictureBox тот же самый или ListBox мерцает. Как исправить?
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 13.11.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Видимо создать свой контрол на базе нужного и сделать это при помощи SetStyle. Учитывая, что это protected метод.
Код

public class MyComtrol:Control//или что там надо
{
    public MyControl()
     {
         this.SetStyle(StyleType.AllPaintningInWmPaint | StyleType.UserPaint, true);

      }

}

Что-то в этом роде. А если надо менять значение флажка - то свойство создать
Код

public class MyComtrol:Control//или что там надо
{
     public bool UserPaint
           {
                get
                  {
                    return this.GetStyle(StyleType.UserPaint);
                   }
                 set
                   {
                    this.SetStyle(StyleType.UserPaint, value);
                   }
            }
}

Что-то в этом роде.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.