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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д