Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
neznaika007
0 / 0 / 0
Регистрация: 05.07.2013
Сообщений: 3
#1

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

07.10.2013, 22:22. Просмотров 749. Ответов 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#):

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

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

Текст на PictureBox стирается при сворачивании-разворачивании окна - C#
Здравствуйте! У меня создается динамически несколько Picturebox. PictureBox vichisl = new PictureBox; private void...

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

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

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

4
Soundpro
72 / 72 / 9
Регистрация: 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
72 / 72 / 9
Регистрация: 19.10.2012
Сообщений: 213
Завершенные тесты: 1
08.10.2013, 01:41 #4
Сразу не увидел что у вас Битмап, думал пикчебокс, щас подумаю.

Добавлено через 20 минут
Что-то туплю, видимо время суток сказывается. У вас рисуется не через битмап, а через е.график, а нужно рисовать в буфер (Bitmap), и в событии form_paint отрисовывать. В инете полно инфы, посмотрите рисование в bitmap, если не разберетесь - завтра Вам код скину.
1
ViterAlex
6190 / 3393 / 1030
Регистрация: 11.02.2013
Сообщений: 7,488
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

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

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

При сворачивании главной формы, сворачиваются все. Как это исправить? - Delphi
При сворачивании главной формы, сворачиваются все. Как это исправить? Мне нужно чтобы две формы оставались. А главная и другие формы...

Масштабирование элементов на форме при изменение размера окна - C++/CLI WinForms
Как сделать так, чтоб некоторые обьекты на форме меняли свой размер относительно размера самой формы? На форме есть одна таблица...


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

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

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