Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 20.05.2022
Сообщений: 28

Необходимо создать тривиальный Paint

03.06.2022, 00:36. Показов 474. Ответов 1

Студворк — интернет-сервис помощи студентам
Не могу понять где допустил ошибку, ошибок как таковых нет(в VS), но в самом PB не появляется линия которую хочу нарисовать. Я только учусь, соответственно по примерам из интернета, с небольшими своими изменениями.

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        PictureBox Pb;
        public Form1()
        {
            InitializeComponent();
            SetSize();
            this.Width = 500;
            this.Height = 500;
        }
        private class ArrayPoints
        {
            private int index = 0;
            private Point[] points;
 
            public ArrayPoints(int size)
            {
                if (size <= 0) { size = 2;}
                points = new Point[size];
            }
 
            public void SetPoint(int x, int y)
            {
                if (index >= points.Length)
                {
                    index = 0;
                }
                points[index] = new Point(x, y);
                index++;
            }
 
            public void ResetPoints()
            {
                index = 0;
            }
 
            public int GetCountPoints()
            {
                return index;
            }
 
            public Point[] GetPoint()
            {
                return points;
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Pb = new PictureBox();
            Controls.Add(Pb);
            this.Pb.Location = new System.Drawing.Point(200, 50);
            this.Pb.Size = new System.Drawing.Size(300, 300);
        }
        private bool isMouse = false;
        private ArrayPoints arrayPoints = new ArrayPoints(2);
 
        Bitmap map = new Bitmap(100,100);
        Graphics graphics;
 
        Pen pen = new Pen(Color.Black, 3f);
 
        private void SetSize()
        {
            Rectangle rectangle = Screen.PrimaryScreen.Bounds;
            map = new Bitmap(rectangle.Width, rectangle.Height);
            graphics = Graphics.FromImage(map);
 
            pen.StartCap = System.Drawing.Drawing2D.LineCap.Round;
            pen.EndCap = System.Drawing.Drawing2D.LineCap.Round;
        }
        private void Pb_MouseDown(object sender, MouseEventArgs e)
        {
            isMouse = true;
        }
        private void Pb_MouseUp(object sender, MouseEventArgs e)
        {
            isMouse = false;
            arrayPoints.ResetPoints();
        }
        private void Pb_MouseMove(object sender, MouseEventArgs e)
        {
            if(!isMouse) { return;}
 
            arrayPoints.SetPoint(e.X,e.Y);
            if(arrayPoints.GetCountPoints() >= 2)
            {
                graphics.DrawLines(pen,arrayPoints.GetPoint());
                Pb.Image = map;
                arrayPoints.SetPoint(e.X, e.Y);
            }
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2022, 00:36
Ответы с готовыми решениями:

Необходимо разработать консольный однопиксельный Paint
Всем привет! Есть холст размером 10x10. Перемещение по холсту осуществлется клавишами стрелок на клавиатуре. Нужно предусмотреть, чтобы...

Открыть картинку в Paint или Paint Net если установлен
Здравствуйте. Как можно открыть картинку в программе Paint или если существует в Paint net И еще вопрос как узнать установлен ли Paint...

Создать панель инструментов как в Paint
мне очень хочется панельку инструментов как на скрине, ToolStrip не предлагать, это 100% не то, ToolStrip даже нельзя в 2 ряда разложить,...

1
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
03.06.2022, 07:53
PictureBox ты создал, но события не привязал к обработчикам, хотя сами обработчики есть. Надо исправить:
C#
1
2
3
4
Pb = new PictureBox();
Pb.MouseMove += Pb_MouseMove;
Pb.MouseUp += Pb_MouseUp;
Pb.MouseDown += Pb_MouseDown;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.06.2022, 07:53
Помогаю со студенческими работами здесь

Создать меню с командами Size, Color, Paint, Quit
Создать меню с командами Size, Color, Paint, Quit. Команда Paint недоступна. При выборе команды Quit приложение завершается. При...

Создать меню с командами Size, Color, Paint, Quit.
Доброе время суток! можно обратиться сюда за помощью в написании контрольной в visual studio? здесь такое практикуется, не запрещено? могу...

Добавить справку в Paint. Создать графический интерфейс - прототип Paint - в Delphi
добавить справку в Paint .создать графический интерфейс прототип Paint в Delfi. Помогите плиз

Создать меню с командами Size, Color, Paint, Quit. При запуске приложения сделать недоступной команду Paint
Создать меню с командами Size, Color, Paint, Quit. При запуске приложения сделать недоступной команду Paint. При выборе команды Quit...

создать программку упрощённый Paint
Ребят помогите: Сделать програму с графическим интерфейсом для реализации простого графического редактора.(Возможность рисовать линии,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru