Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
2 / 0 / 0
Регистрация: 10.08.2013
Сообщений: 19
1

Не удалять нарисованное в PictureBox при Refresh

22.06.2014, 05:35. Показов 2129. Ответов 6
Метки нет (Все метки)

Есть функция Refresh которая полностью обновляет форму и удаляет предыдущий рисунок, есть ли функция которая не стирала бы его?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2014, 05:35
Ответы с готовыми решениями:

Рисование на Picturebox: нарисованное стирается при сворачивании формы
Здравствуйте, подскажите как нарисовать на Picturebox. Нужно рисовать карандашом как в пейнте. ...

Как нарисованное перенести в pictureBox
Есть код для рисования на форме. Всё работает хорошо. но как его перевести на pictureBox? Вроде все...

Не получается сохранить нарисованное в pictureBox
Таким образом происходит рисование. private void pictureBox1_MouseMove(object sender,...

Kак сохранить нарисованное изображение в picturebox
Привет всем. На picturebox динамически рисую rectangle, меняю размер, цвет, а как потом все это...

6
Заблокирован
22.06.2014, 12:30 2
Нет. Но можно что-то нарисовать поверх изображения в PictureBox.
C++
1
2
3
4
Graphics ^g = Graphics::FromImage(pictureBox1->Image);
g->DrawLine(Pens::Red, 0, 0, 100, 100);
pictureBox1->Refresh();
g->Dispose();
0
2 / 0 / 0
Регистрация: 10.08.2013
Сообщений: 19
22.06.2014, 13:26  [ТС] 3
Куда нужно поставить dispos?
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
25
private: System::Void pictureBox1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) 
         {   Brush^ brush=gcnew SolidBrush(colorDialog2->Color);
             Pen^ pen=gcnew Pen(colorDialog1->Color);
             if (comboBox1->SelectedIndex==0) 
             {
                 e->Graphics->DrawLine(pen, a, b, c, d);
                 e->Graphics->DrawLine(pen, c, d, t, f); 
                 e->Graphics->DrawLine(pen, t, f, a, b);
                 Point point1 = Point(a,b);
                 Point point2 = Point(c,d);
                 Point point3 = Point(t,f);
                 array<Point>^ points = {point1,point2,point3};
                 e->Graphics->FillPolygon(brush, points);
             }
             if (comboBox1->SelectedIndex==1)
             {  
                e->Graphics->DrawEllipse(pen, c, d, a, b);
                e->Graphics->FillEllipse(brush, c, d, a, b);
             }
             if (comboBox1->SelectedIndex==2)
             {  
                e->Graphics->DrawEllipse(pen, c, d, a, a);
                e->Graphics->FillEllipse(brush, c, d, a, a);
             }
         }
0
Заблокирован
22.06.2014, 14:44 4
Если используете Paint, то не нужны ни Dispose, ни g.
Используйте e->Graphics вместо g.
0
2 / 0 / 0
Регистрация: 10.08.2013
Сообщений: 19
22.06.2014, 16:23  [ТС] 5
это я понял, я не понел в какое место это впихнуть и error C2039: Dispose: не является членом "System::Drawing::Graphics"
0
Заблокирован
22.06.2014, 17:58 6
НЕ НУЖЕН DISPOSE.
0
1444 / 1117 / 344
Регистрация: 11.04.2011
Сообщений: 2,615
23.06.2014, 06:19 7
В C++\CLI нет Dipose'а. Точнее он пишется иначе:
C++
1
delete g;
На всякий случай повторю еще раз. В обработчике Paint ни Dispose, ни delete для Graphics не просто не нужен, его нельзя здесь писать. В этом обработчике вы объект графики не создали, а получили, и убив его здесь вы сломаете всю дальнейшую отрисовку формы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2014, 06:19

Двигать фигуру мышью, есть ли более быстрая альтернатива методу pictureBox.Refresh?
На форме есть pictureBox, в который вставлен рисунок (Image) из файла. С использованием метода...

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

Как во время работы программы добавлять и удалять элементы, pictureBox в том числе?
Как во время работы программы нажимая на button добавлять в форму группы элементов, чтобы новая...

Нарисованное стирается при сворачивании формы
public partial class MainForm : Form { Color deafultCol = Color.Black; bool...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.