Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
24 / 24 / 10
Регистрация: 04.04.2012
Сообщений: 119
1

Очищение рисунка в panel при перекрытии его другими окнами

20.12.2012, 11:20. Показов 1648. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день.
Изучаю c# пытаюсь написать свой Paint. Столкнулся с траблой очищается рисунок, который находится в Panel1.
Очищается если поверх Panel1 провести любое другое окно или форму.

Добавлено через 23 часа 22 минуты
Что-то нулевая активность
Попробовал вместо Panel использовать PictureBox, вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void PictureBox1MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button==MouseButtons.Left)
            {
                if ((x==0)&&(y==0))
                {
                x=e.X;
                y=e.Y;
                }
                Pen mypen = new Pen(Color.Black,1);
                Graphics g1 = pictureBox1.CreateGraphics();
                g1.DrawLine(mypen,x,y,e.X,e.Y);
                x=e.X;
                y=e.Y;              
                pictureBox1.Image=new Bitmap(791,288,g1);               
                g1.Dispose();
            }
            else 
            {
            x=0;
            y=0;
            }
                
        }
Идёт очищение линии практически сразу после рисование(слабый комп, думаю на более мощном вообще не заметно линии будет).
Собственно вопрос, как правильно сделать сохранение Graphics в Image?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2012, 11:20
Ответы с готовыми решениями:

Работа с другими окнами
Есть кнопка и открытое окно Windows Media Player. Как сделать так, чтобы при нажатии этой кнопки в...

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

Определить, не заслонена ли форма другими окнами в координатах
Не уверен, что это возможно, но всё же. Есть форма, не в фокусе. Над ней могут быть окна любых...

При перекрытии окна другими окнами исчезает нарисованное...
При перекрытии окна другими окнами исчезает нарисованное... Как быть? Я рисую сначала в MemDC,...

5
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
20.12.2012, 11:53 2
Надо сперва создать рисунок и графику получить из него, а уже потом рисовать на нем, как-то так:

C#
1
2
3
4
5
6
pictureBox1.Image = new Bitmap(791,288);
Graphics g1 = Graphics.FromImage(pictureBox1.Image);
g1.DrawLine(mypen,x,y,e.X,e.Y);
x=e.X;
y=e.Y;
g1.Dispose();
1
24 / 24 / 10
Регистрация: 04.04.2012
Сообщений: 119
20.12.2012, 12:23  [ТС] 3
Попробовал, не рисуется линия.
0
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
20.12.2012, 12:34 4
Потому что изображение надо создать отдельно:

Этот код надо вынести за пределы события MouseMove:

C#
1
pictureBox1.Image = new Bitmap(791,288);
В коде по-прежнему:

C#
1
2
3
4
5
6
7
8
Graphics g1 = Graphics.FromImage(pictureBox1.Image);
g1.DrawLine(mypen,x,y,e.X,e.Y);
g1.Flush();
g1.Dispose();
 
x=e.X;
y=e.Y;
pictureBox1.Invalidate();
1
24 / 24 / 10
Регистрация: 04.04.2012
Сообщений: 119
20.12.2012, 12:34  [ТС] 5
Вроде разобрался.
Как раз так и сделал.
0
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
20.12.2012, 12:34 6
Блин, написал после. Лишнее сообщение.
0
20.12.2012, 12:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2012, 12:34
Помогаю со студенческими работами здесь

Управление другими окнами с задержкой или ожиданием
Доброго времени всем! Застрял с очередной проблемой. Решил поуправлять сторонней программой...

Почему форма fsSystemStayOnTop иногда перекрывается другими окнами?
Окно программы, которое должно быть поверх всех окон, иногда все же прячется за другими...

Как отследить что форма не перекрыта другими окнами
Доброго времени суток! Есть форма, нужно отследить момент когда эту форму не перекрывают другие...

Размещение рисунка на Panel
Здравствуйте, подскажите пожалуйста как разместить bitmap рисунок на панели. Нашёл что у Tpanel...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru