Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2010, 17:08   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию GDI+

Код:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            
            GraphicsPath path0 = new GraphicsPath(new Point[]
                {
                    new Point((int)(10 * data[0, 0]), (int) ( 10 * data[0, 1])),
                    new Point((int)(10 * data[1, 0]), (int) ( 10 * data[1, 1])),
                    new Point((int)(10 * data[2, 0]), (int) ( 10 * data[2, 1])),
                    new Point((int)(10 * data[3, 0]), (int) ( 10 * data[3, 1])),
                    new Point((int)(10 * data[4, 0]), (int) ( 10 * data[4, 1])),
                    new Point((int)(10 * data[5, 0]), (int) ( 10 * data[5, 1])),
                },
                new byte[]
                {
                    (byte)PathPointType.Start,
                    (byte)PathPointType.Line,
                    (byte)PathPointType.Line,
                    (byte)PathPointType.Line,
                    (byte)PathPointType.Line,
                    (byte)PathPointType.Line
                });
            Pen Pen0 = new Pen(Color.Black, 5);
            e.Graphics.DrawPath(Pen0, path0);
        }
на последней строчке выскакивает ошибка во время выполнения программы
Object reference not set to an instance of an object.
эта функция была вызвана из функции нажатия кнопки : pictureBox1_Paint(this, null);
Dimarik вне форума Ответить с цитированием
Старый 03.05.2010, 17:44   #2
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Код:
pictureBox1_Paint(this, null); 
....
private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            .....
            e.Graphics.DrawPath(Pen0, path0);
        }
akasex вне форума Ответить с цитированием
Старый 03.05.2010, 18:26   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

1. попробовал так:
PaintEventArgs t;
pictureBox1_Paint(this, t);
как провести инициализацию?
2. попробовал без вызова функции из функции нажатия кнопки.
по идее, по крайней мере как в литературе по winApi написано, прорисовка окна происходит при малейших изменениях в окне. например, при перемещении окна. но в данном случае этого не происходит. я и сворачивал и разворачивал окошко, а событив pictureBox1_Paint не работает=( может это потому что это событие привязано в pictureBox1, а не к Form1?
Dimarik вне форума Ответить с цитированием
Старый 03.05.2010, 18:33   #4
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

функции нажатия кнопки : pictureBox1.Invalidate();
akasex вне форума Ответить с цитированием
Старый 03.05.2010, 20:54   #5
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

заработало. это событие делает перепрорисовку?
спасибо
Dimarik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
буфер в GDI+? juan666777 Мультимедиа в Delphi 7 09.03.2013 15:01
GDI+ в Delphi BOBAH13 Мультимедиа в Delphi 2 04.10.2008 13:45
GDI EdNovice Win Api 4 12.02.2008 09:14
GDI plus API delphi_coder Win Api 1 28.09.2007 12:41