Я новичок в c #, так что, вероятно, большая часть моей проблемы - не понять, как работает событие рисования. У меня есть код, который рисует ряд прямоугольников. Я хочу, чтобы он отображался с помощью GDI + при нажатии пробела. У меня все работает правильно, если я не использую ключевое событие для вызова класса рисования. Моя проблема в том, что, когда я помещаю новый обработчик события рисования в мой обработчик события пробела, ничего не происходит. Я удалил часть своего кода, чтобы было легче увидеть этот вопрос. Заранее спасибо.
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Timers;
using System.Windows.Input;
using System.Threading;
using System.Threading.Tasks;
using System.ComponentModel;
public class Drawgra : Form
{
public static void Main()
{
Application.Run(new Drawgra());
}
public Drawgra()
{
int screenheight = 950; int screenwidth = 1600;
this.Size = new Size(screenwidth, screenheight);
ConsoleKeyInfo key;
key = Console.ReadKey(true);
this.KeyPreview = true;
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
// this.Paint += new PaintEventHandler(Draw_outlines);
}
public void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
this.Paint += new PaintEventHandler(Draw_outlines);
}
}
public void Draw_outlines(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen box = new Pen(Color.Black, 20);
g.DrawRectangle(box, 100, 0, 200, 400);
}
}//close form