مثال از چیزی که قبلا گفتم:
یک متغیر bool در سطح کلاس تعریف کنید. در جایی که عمل رسم اعمال میشه (باتن2) برای اجرای عمل رسم متغیر رو true و با متد Invalidate رسم مجدد رو فراخوانی کنید و در جایی که باید پاک بشه هم همینطور با مقدار false و رسم مجدد. در این مثال رسم در باتن1 انجام میشه به شرطی که متغیر true باشه.
        private bool _draw;

private void button2_Click(object sender, EventArgs e)
{
_draw = true;
button1.Invalidate();
}

private void button3_Click(object sender, EventArgs e)
{

_draw = false;
button1.Invalidate();
}

private void button1_Paint(object sender, PaintEventArgs e)
{
if (_draw)
{
// رسم ...
e.Graphics.Clear(Color.AntiqueWhite);
}
}