Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Мерцание формы


Автор: Antenka 1.3.2008, 21:32
Доброго времени суток!

У меня есть форма (1280х1024) у нее как бэкграунд установлена картинка. Помимо этого на форме tableLayoutPanel , которая забита кучей разных контроллов (кнопки, ричтексбоксы....). Проблема такая: при запуске форма жуть как мерцает... если попытаться изменить размеры формы- та же ерунда (по-моему даже хуже). Начитала, что можно у формы поставить doubleBuffered=true; Пробовала- не помогло. 

Помогите пажалста!!!!!!
P.S. Заранее спасибо

Автор: Crimp 1.3.2008, 22:52
Видимо форма получилась достаточно тяжёлая, если использовал стандартные контроллы и как ты говориш их там очень много, то прям скажем это очень тяжело :( Правдо по делу я ничего не написал smile
Правда если контроллов действительно много то тут врятли что то можно будет придумать простое, как вариант облегчить форму можно написав свои кнопки, это не сложно, а поможет сильно, если на форме много кнопок.

Автор: Antenka 1.3.2008, 22:58
всего на форме:
11 лейблов
6 текстбоксов
3 ричтекстбокса
8 кнопок
2 листбокса
есть ли смысл писать что-либо своё? Если да, то что?

P.S. если картинку с фона убрать (она весит 70 Кбайт), то грузится без проблем..... дело в том что форма нужна именно с картинкой

Автор: Azzdorf 2.3.2008, 00:49
в .НЕТ есть компромис между скоростью и качеством выведения графики, если пользуешся 
Код

Graphics g = e.Graphics;

тогда можна поиграться из таким, меняя режими компромис (скорость / качество)
Код

g.SmoothingMode = SmoothingMode.Antialias;

стандарт, и еще может быть
Код

HighQuality;
HighSpeed;

....
и поиграйся из
Код

g.InterpolationMode = ....
g.RenderingOrigin = .....


Автор: Unsane 2.3.2008, 14:17
Попробуй добавить в конструктор формы:
Код

            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.UserPaint, true);

Автор: Azzdorf 2.3.2008, 17:52
Цитата(Unsane @ 2.3.2008,  14:17)
this.SetStyle(ControlStyles.DoubleBuffer, true);

вот блин про что забыл - это в первую очередь smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)