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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос по двойной буферизации 
:(
    Опции темы
Franz1981
Дата 11.10.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 8.10.2008

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



Суть: имеется 3 скролбара , изменение положения которых вызывает функцию Pos() которая обрабатывает значения скроллбаров и передаёт 3 переменные в метод DrawEp(). Необходимо вывести изображение на PictureBox2 

    
Код

public class Epur
    {
        Form1 parentFrm;
        public System.Drawing.Pen myPen;
        public System.Drawing.Graphics gr;
        
        
        public Epur(Form1 frm)
        {
            parentFrm = frm;
            myPen = new System.Drawing.Pen(System.Drawing.Color.Black);
            
        
        }
       
        

        public void Pos()
        {  ......
            ......
            ......

            DrawEp(Point1, Point2, Point3);


        }


        void DrawEp(int[] Point1, int[] Point2, int[] Point3)
        {
            
            Bitmap bitmap = new Bitmap(parentFrm.pictureBox1.Width, parentFrm.pictureBox1.Height);
            gr = Graphics.FromImage(bitmap);
            System.Drawing.Graphics formGraphics = parentFrm.pictureBox2.CreateGraphics();
            
            myPen.Width = 1;
            
            gr.DrawLine(myPen, parentFrm.pictureBox2.Width / 2, parentFrm.pictureBox2.Height - 20, parentFrm.pictureBox2.Width / 2, 20);
            gr.DrawLine(myPen, parentFrm.pictureBox2.Width-20, parentFrm.pictureBox2.Height/2,20, parentFrm.pictureBox2.Height/2);

            gr.DrawEllipse(myPen, Point1[0], Point1[1], 2, 2);
            gr.DrawEllipse(myPen, Point2[0], Point2[1], 2, 2);
            gr.DrawEllipse(myPen, Point3[0], Point3[1], 2, 2);
            
            formGraphics.Clear(System.Drawing.Color.White);
            formGraphics.DrawImage(bitmap, 0, 0);

        }
        
       
    }


как видите я рисую на битмапе, а потом этот битмап на пикчебокс2(т.н "двойная буферизация"). Но мерцание никуда не делось. Что я неправильно делаю?
PM MAIL   Вверх
Dennnis
Дата 12.10.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: 1
Всего: 4



Удали строчку 45. Из-за того что ты клеаришь форму и происходит мерцание.
--------------------
Get Rich or Die Tryin'
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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