Windows Forms и рисование в PictureBox - C#

Узнай цену своей работы

Формулировка задачи:

Задание задать параметры прямоугольника и вывести его на экран. Не получается нарисовать что-либо, при таком варианте кода выдает ошибку ошибка CS1061: "System.Windows.Forms.PaintEventArgs" не содержит определения для "graphics" и не был найден метод расширения "graphics", принимающий тип "System.Windows.Forms.PaintEventArgs" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку) при попытке нарисовать
e.graphics.DrawRectangle(pen, rec);
не понимаю в чем ошибка... заодно вопрос - как из метода private void button2_Click обратиться к pictureBox1_Paint, и чтобы произошло рисование в поле picturebox1?
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("Отмена действий.");
 
        }

    }
}

Решение задачи: «Windows Forms и рисование в PictureBox»

textual
Листинг программы
picturebox1.Invalidate();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5