Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > .NET: Общие вопросы > Свой контрол(свойства,методы,переменные) |
Автор: Technos 12.08.03, 14:01 |
Приветствую господа! Пишу первый раз свой контрол - календарь. И возникла парочка вопросов, восновном касающихся отрисовки. 1) Как(где) правильней отрисовывать сам контрол? Всмысле если весь код поместить в событие Paint, тормозно как-то наверное? Или использовать if конструкции в Paint и отрисовывать отдельные части? Нигде не нашел рекомендаций где и как лучше это делать. 2)Есть ли фишка, с помощью которой можно залить область клетки где нарисовано число другим цветом НО так, чтобы число не было закрашено(эффект как в paintbrush'e заливка). 3)Есть такой код: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> <br>[<br>Category("Colors"),Description("Grid Color")<br>]<br>public System.Drawing.Color GridCol<br>{<br>set<br> {<br> this.GridColor = value;<br> }<br>get<br> {<br> return this.GridColor;<br> }<br>}<br><br>[<br>Category("Colors"),<br>Description("Selection Color")<br>]<br>...<br> Почему в свойствах контрола(когда я его использую в проекте), эти свойства разбросаны?Категория одинаковая выставлена... Пока вроде всё:) Кто может, подкиньте советы:) |
Автор: andrey 12.08.03, 20:55 |
1) В Paint - это не тормозно, только поставь ссответствующие ControlStyles, там AllPaintingInWmPaint итд. 2)Почему нельзя сначала залить, а потом нарисовать число? 3)Потому что они сортируются па алфавиту внутри категории |
Автор: Technos 12.08.03, 22:16 |
1)Спасибо, значит так и буду делать:) 2)Фишка такая: Если юзер выбирает дату в календаре, то мне нужно менять цвет фона, заного перерисовывать весь календарь? Надо продумать как ЛЕГКЧЕ и чтоб не шибко тормозило...(ты поопытнее в этом деле, я кроме своих кнопок ничего не рисовал:)) Любая инфа в направлении создания контроллов будет очень полезна. 3)А как их запихнуть в подгруппу? (можно ссылочку на МСДН, просто сам не нашёл) |
Автор: andrey 13.08.03, 20:46 |
2)Зачем весь? Только две клетки, если уж так сильно заботит производительность. Но вообще скорости GDI и даже GDI+ Должно хватать для перерисовки всего контрола без особых тормозов. 3)Надо использовать CategoryAttribute. Почему у тебя не растаскивается по группам я не знаю, у меня всё OK. Может не включён Categorized view? PS А почему бы не использовать стандартный ActiveX календарик? |
Автор: Technos 14.08.03, 01:12 |
2)Точно:) 3)Студия чегото барахлит...вроде врублен вью по категориям, в C#Builder'e все впорядке... Насчет АктивХ, как и нативный календарь не подходит изза малых графических возможностей. Нужно чтобы можно было отмечать разные даты разными цветами, блинк эффект дат... |