WinForms как рисовать вне Overlay_Paint(object sender, PaintEventArgs e)?
Имею отдельный класс, в котором хочу отрисовывать фигуры:
internal class Drawer
{
private Graphics Graphics;
public Drawer(Form form)
{
Graphics = form.CreateGraphics();
}
public void DrawBox(Rectangle rectangle, Color color)
{
Pen pen = new Pen(color, 5);
Graphics.DrawRectangle(pen, rectangle);
}
}
Но если сделать так, то изменения не будут видны
public partial class Overlay : Form
{
private Drawer drawer;
public Overlay()
{
InitializeComponent();
this.Size = new Size(1920, 1080);
}
private void Overlay_Load(object sender, EventArgs e)
{
drawer = new Drawer(this);
Draw();
}
private void Draw()
{
drawer.DrawBox(new Rectangle(0, 0, 500, 500), Color.Red);
}
private void Overlay_Paint(object sender, PaintEventArgs e)
{
// если вызвать здесь Draw(), то все заработает, но мне так не нужно
}
}
Но что если я хочу рисовать независимо, вне этой функции? Может есть возможность обновлять вручную, вместо использования ивентов? Как вынести это все в тот класс?