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