Простой пример, перетащите CheckBox на форму:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
checkBox1.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);
}
private void checkBox1_CheckedChanged(object sender, EventArgs e) {
this.Invalidate();
}
protected override void OnPaint(PaintEventArgs e) {
if (checkBox1.Checked) {
e.Graphics.DrawArc(Pens.Black, this.ClientRectangle, 0, 360);
}
}
}
Вызов Invalidate () является ключом к стиранию исходного чертежа, он заставляет форму перекрашиваться. Метод OnPaintBackground по умолчанию, реализованный базовым классом, превращает все обратно в серый цвет линкора.