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

Windows Forms и рисование в PictureBox

14.05.2011, 12:08. Показов 4878. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание задать параметры прямоугольника и вывести его на экран.
Не получается нарисовать что-либо, при таком варианте кода выдает ошибку

ошибка CS1061: "System.Windows.Forms.PaintEventArgs " не содержит определения для "graphics" и не был найден метод расширения "graphics", принимающий тип "System.Windows.Forms.PaintEventArgs " в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)

при попытке нарисовать
C#
1
e.graphics.DrawRectangle(pen, rec);
не понимаю в чем ошибка...

заодно вопрос - как из метода private void button2_Click обратиться к pictureBox1_Paint, и чтобы произошло рисование в поле picturebox1?

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace CSharp_Window_Traxing
{
    public partial class Form1 : Form
    {
        bool setData=false;
        public static int x = 0;
        public static int y = 0;
        public static int c = 0;
 
      
        public Form1()
        {
            InitializeComponent();
        }
 
        private void changeBtn()
        {
            if (setData)
            {
                button2.Enabled = true;
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            DialogResult rsl = MessageBox.Show("Вы действительно хотите выйти из приложения?", 
            "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            // если пользователь нажал кнопку да
            if (rsl == DialogResult.Yes)
            {
                // выходим из приложения
                Application.Exit();
            }   
        
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
           // РИСУЕМ
        }
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            Rectangle rec = new Rectangle(0,0,x,y);
 
            Pen pen = new Pen(Color.Black, 2);
            
            e.graphics.DrawRectangle(pen, rec);
        }
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            string s1, s2;
            int s3;
            string line="Красный,Зелёный,Синий,Жёлтый,Фиолетовый,Бирюзовый,Чёрный";
            string[] colors = line.Split(',');
 
            if (Form2.Input("Ввод значений", out s1, out s2 ,out s3))
            {
                label4.Text = s1;
                label5.Text = s2;
                label6.Text = colors[s3];
                c = s3;
                if (s1 == "")
                    x = 0;
                else
                    x = int.Parse(s1);
                if (s2 == "")
                    y = 0;
                else
                    y = int.Parse(s2);
                
                setData = true;
                changeBtn();
            }
            //else
                //System.Windows.Forms.MessageBox.Show("Отмена действий.");
 
        }
 
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.05.2011, 12:08
Ответы с готовыми решениями:

Рисование в C++ Windows Forms
Всем здравствуйте такое задание нужно нарисовать с помощью треуголиников, квадратов, прямоугольников и кругов что то на подобие животного...

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

Windows Forms — Рисование мышью
Составил процедуру, связанную с событием MouseMove, с помощью которого можно рисовать на форме: procedure Form1.Drawing(sender:...

3
81 / 81 / 8
Регистрация: 13.01.2010
Сообщений: 304
14.05.2011, 14:48
по первой части сообщения: отрисовка происходит в событии Paint? М.б. надо поправить регистр тогда

C#
1
e.Graphics.DrawRectangle(pen, rec);
Добавлено через 3 минуты
по второй части - я так понял достаточно перерисовать объект.

Добавлено через 22 секунды
по второй части - я так понял достаточно перерисовать объект.

C#
1
picturebox1.Refresh();
или так

C#
1
picturebox1.Invalidate();
1
5 / 5 / 1
Регистрация: 08.05.2011
Сообщений: 121
14.05.2011, 15:24  [ТС]
Цитата Сообщение от ellin Посмотреть сообщение
по первой части сообщения: отрисовка происходит в событии Paint? М.б. надо поправить регистр тогда
Да, с регистром косяк был)

Теперь ошибок нет но рисунок не рисует

вложил проект, может там что не так
Вложения
Тип файла: rar CSharp Window Traxing.rar (45.4 Кб, 53 просмотров)
0
5 / 5 / 1
Регистрация: 08.05.2011
Сообщений: 121
14.05.2011, 15:40  [ТС]
Цитата Сообщение от vvApache Посмотреть сообщение
Да, с регистром косяк был)

Теперь ошибок нет но рисунок не рисует

вложил проект, может там что не так
разобрался, сопоставил pictureBox1_Paint с событием paint в форме и теперь работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.05.2011, 15:40
Помогаю со студенческими работами здесь

Рисование на bitmap [Windows Forms]
Решил попробовать написать небольшую программу для рисования изображений на bitmap'е. Компилируется все без ошибок, но при нажатии мыши,...

Рисование в Windows Forms своим классом
Итак первичная цель: Создать свой класс, в дальнейшем библиотеку, который будет хранить координаты, цвет и форму фигуры для дальнейшей...

Как заменить некомпилируемый "System::Windows::Forms::PictureBox Array[][]"
(где-то внутри "namespace Spacebox") // Пользовательский блок: начало class Planet{ // Ещё не разработан, НО ...

Windows.Forms - Процедуры, цикл for и System.Windows.Forms.Button
Доброго времени суток. Есть WinForms программа: ... private ClickedButtonId, ClickedButtonX, ClickedButtonY:Integer; ...

Код для Windows Forms не работает в Web Forms?
В том году я делал лабораторки по Winforms. Естественно, они все у меня сохранились, и я полез в их код, вспоминать былое, так сказать,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru