Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
neznaika007
0 / 0 / 0
Регистрация: 05.07.2013
Сообщений: 3
#1

Как сохранить избражение(линию) на форме при сворачивании(или изменение формы) окна - C#

07.10.2013, 22:22. Просмотров 791. Ответов 4
Метки нет (Все метки)

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 public partial class Form1 : Form
    {
        bool draw;
        Point start_point = new Point();
        Pen pen1 = new Pen(Color.Black);
        SolidBrush brush1 = new SolidBrush(Color.Black);
        Bitmap bmp1 = new Bitmap(1, 1);
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (draw)
            {
                Graphics g = CreateGraphics();
                g.DrawLine(pen1, start_point, e.Location);
                g.Dispose();
                start_point = e.Location;
            }
        }
 
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                draw = false;
            }
        }
 
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                draw = true;
                start_point = e.Location;
            }
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
 
        }
    }
}
Добавлено через 5 минут
2 строчки перед public Form1() лишнее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 22:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как сохранить избражение(линию) на форме при сворачивании(или изменение формы) окна (C#):

Динамическое изменение формы или форма в форме
Здравствуйте. Хочу сделать приложение Windows Forms с особыми требованиями, но...

как нарисовать линию(горизонтальную или вертикальную) в длину или ширину всей формы с определенными координатами X, Y?
как нарисовать линию(горизонтальную или вертикальную) в длину или ширину всей...

Рисунки на форме стираются при сворачивании
Захотел я порисовать на форме using System; using System.Collections.Generic;...

Текст на PictureBox стирается при сворачивании-разворачивании окна
Здравствуйте! У меня создается динамически несколько Picturebox. PictureBox...

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

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

4
Soundpro
73 / 73 / 34
Регистрация: 19.10.2012
Сообщений: 213
Завершенные тесты: 1
08.10.2013, 00:34 #2
Refresh
0
neznaika007
0 / 0 / 0
Регистрация: 05.07.2013
Сообщений: 3
08.10.2013, 00:47  [ТС] #3
а можно поподробней плз
0
Soundpro
73 / 73 / 34
Регистрация: 19.10.2012
Сообщений: 213
Завершенные тесты: 1
08.10.2013, 01:41 #4
Сразу не увидел что у вас Битмап, думал пикчебокс, щас подумаю.

Добавлено через 20 минут
Что-то туплю, видимо время суток сказывается. У вас рисуется не через битмап, а через е.график, а нужно рисовать в буфер (Bitmap), и в событии form_paint отрисовывать. В инете полно инфы, посмотрите рисование в bitmap, если не разберетесь - завтра Вам код скину.
1
ViterAlex
6349 / 3553 / 1458
Регистрация: 11.02.2013
Сообщений: 7,831
Завершенные тесты: 3
08.10.2013, 03:48 #5
Примеров действительно масса. Я исправил ваш код, чтобы рисование происходило на битмапе, а сам битмап прорисовывался при прорисовке формы. Студии под рукой нет, но вроде всё учёл:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 public partial class Form1 : Form
    {
        bool draw;
        Point start_point = new Point();
        Pen pen1 = new Pen(Color.Black);
        SolidBrush brush1 = new SolidBrush(Color.Black);
        Bitmap bmp1 = new Bitmap(this.Width, this.Height);
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (draw)
            {
                Graphics g = Graphics.FromImage(bmp1);
                g.DrawLine(pen1, start_point, e.Location);
                g.Dispose();
                start_point = e.Location;
            }
        }
 
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                draw = false;
            }
        }
 
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                draw = true;
                start_point = e.Location;
            }
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawImage(bmp1, 0,0);
        }
    }
}
1
08.10.2013, 03:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2013, 03:48
Привет! Вот еще темы с решениями:

Listview дублирует предыдущую строку при сворачивании формы
После того, как заполняется строка в Listview, при сворачивании формы или...

Изменение размеров формы со свойством autosize=true при сворачивании/разворачивании
Добрый день! Помогите, пожалуйста,решить такую проблему: при...

Как сделать так, чтобы фигура не стиралась при сворачивании окна?
Здравствуйте. Пытаюсь написать простой графический редактор и в процессе...

Как в MDI спрятать панельку, отображающуюся при сворачивании дочернего-окна?
Скажите, пожалуйста, как в MDI приложении спрятать панельку, отображающаяся при...


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

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

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