Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/27: Рейтинг темы: голосов - 27, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 6

двойная буферизация

27.03.2010, 21:49. Показов 5300. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
У меня есть объект Panel с именем infoPanel, рисую я в нём так:
C#
1
2
3
4
5
6
7
8
private void infoPanel_Paint(object sender, PaintEventArgs e)
        {
            infoPanel.BackColor = Color.FromArgb(100, OnFocus.pen.Color);
 
            e.Graphics.FillRectangle(OnFocus.pen.Brush, 0, 0, infoPanel.Width, 20);
            e.Graphics.DrawRectangle(OnFocus.pen, 0, 0, infoPanel.Width, infoPanel.Height);
            .... и т.д.
        }
Как избежать мерцания? Читал, что надо включить двойную буферизацию, но у Panel нету свойства DoubleBuffered! Что делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2010, 21:49
Ответы с готовыми решениями:

Двойная буферизация.
подскажите, что я делаю не так. protected override void OnPaint(PaintEventArgs e) { // Graphics g =...

BindingSource двойная связь
Здравствуйте. Можно ли через BindingSource сделать так называемую двойную связь чтобы можно было не только изменять через list<> но и...

Двойная буферизация
Надо включить двойную буферизацию в приложении. на MSDN написано, что это делается так: DoubleBuffered = true; или так: ...

2
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
27.03.2010, 22:49
Можно рисовать на Bitmap, а затем Bitmap на панель.

Как то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Bitmap buf = new Bitmap(infoPanel.Width, infoPanel.Height);
 
//...............
 
void Draw()
{
        Graphics bufG = Graphics.FromImage(buf);
        bufG.DrawRectangle(...);
        infoPanel.Invalidate();
}
 
private void infoPanel_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawImage(buf,0,0);
        }
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
28.03.2010, 03:04
или ставь DoubleBuffered = true; у родительского контрола, либо унаследуйся от Panel и в конструкторе ставь то же, ибо DoubleBuffered - protected член
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2010, 03:04
Помогаю со студенческими работами здесь

Двойная буферизация
Собственно, не работает ни при DoubleBuffered = true;, ни при SetStyle(ControlStyles.OptimizedDoubleBuffer, true);.. Форма состоит из...

Двойная буферизация в GDI+
Я написал простое тестовое приложение - в нём за мышью движется мяч. Но на экране появлялось мерцание. Я сделал двойную буферизацию, но...

Двойная буферизация для панели
Знаю тем было много, но я что то так и не понял нечего У меня есть форма, а на ней панель, на которой я все рисую, так вот как включить...

WPF WindowsFormsHost DataGridView двойная буферизация
Всем доброго времени суток! Недавно работал над проектом на WindowsForms. Т.к программа нуждалась в более продвинутом дизайне, решил...

Двойная буферизация, графика и критические лаги
Всем привет. Прогаю 2D игру на Vb.net Есть 1 таймер, в нем графика, передвижение, смена кадра. Рисую на форме с помощью буфера: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru