[С#]артефакты при прокрутке
но, может быть, double buffer тебе поможет?
но как ето включить знаю только для OGL
или что-то в этом духе
читай по нему хелпу: там надо ещё какие-то свойства в тру выставлять
а почему может не работать?
не ту хелпу?
не хелпу?
не тем?
{
// Set the value of the double-buffering style bits to true.
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint,
true);
this.UpdateStyles;
}
ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaintа так можно ваще?
ето из мсдна
я просто не знал, что так мона
а почему может не работать?
о
вспомнил
то же самое надо прописать и во всех юзер- и кастом-контролах
ето ж протектед метод
так что для всех не получится
юзер- и кастом-контролах
то есть на твоих
ето главная форма
вообще то даблбуфер для объекта Graphics работать будет?
нет, конечно
не пойму как оно работает
причём тут SetStyle?
сделать double buffer?
или как еще можно рисовать и выводить данные?
даббл-буффер ставится на кастом-контрол или форму или ещё что-либо, наследующееся от контрола
то есть объект графикс -- вообще говоря -- не знает, даббл-буферённый у него пэрент или нет
короче
давай свою прогу -- попробую посмотреть, в чём траблы
синее - Graphics
вечером гляну
нафиг мне твой экзешник, а?
сорцы давай!
так я вижу только то, что даббл-буфферизация не работает
всё
(расширил \\otec)
2. Font-ы, Brush-ы и Pen-ы лучше создавай однократно, а не при каждой перерисовке, так как создание этих объектов - довольно длительная операция
3.
this.res_wnd.Paint += new System.Windows.Forms.PaintEventHandler(this.res_draw_anal);
предыдущий обработчик почему не отключаешь?
у тебя же оба будут вызываться.
и еще насчет п.1 то есть?
Через -= можно.
ps
но в данном случае, имхо, лучше вообще от событий отказаться, т.к. события больше заточены под статическую привязку.
> и еще насчет п.1 то есть?
Делаешь Add new user control
уже именно в этом user control-е делаешь отрисовку (вывод графика или что там у тебя а этот user control вставляешь на главную форму.
принципиальный момент: картинку фигачиьт надо прямо на сам контрол, а не на какую-нить там панельку, в этом контроле расположенную
просто так лучше смотриться
избегал их описанным выше способом
ну или через кастом-контролы
дык, UserControl клади на панель, а вот наоборот не стоит.
Оставить комментарий
olegusmaximus
есть 2 обработчика собития Paintоба в объекте Graphics рисуют таблицу чисел
но с разным фоном
есть полоса прокрутки
на событие Scroll стоит обработчик который вызывает Invalidated
так вот
меняется обработчик для Paint
и когда начинаешь прокручивать таблицу
она какогото прорисовывается по несколько раз
причом видно что и старый обработчик то же работает(видно что фон другой появляется)
так то конечно все нормально
только ета рябь напрягает
если кто чо понял
то жду советов