НИКОГДА не звоните CreateGraphics
. ВСЕГДА делайте ВСЕ свои рисунки в обработчике событий Paint
. Вы создаете объект Graphics
в обработчике событий Click
и очищаете его, но какая польза от этого, когда вы снова выполняете рисование в обработчике событий Paint
в следующий раз, когда это событие возникает?
Что вам нужно сделать, так это сохранить все данные, которые представляют ваш рисунок, в одном или нескольких полях, обновлять эти данные всякий раз, когда вы хотите изменить рисунок, и рисовать, используя эти данные в обработчике событий Paint
. Если вы хотите очистить рисунок, вы очищаете эти данные, а затем принудительно перерисовываете, вызывая Invalidate
. В обработчике событий Paint
вы рисуете GraphicsPath
, хранящееся в поле mousePath
. Это означает, что в обработчике событий Click
вам нужно очистить этот GraphicsPath
, а затем вызвать Invalidate
. Затем появится событие Paint
, которое сначала очистит существующий рисунок, а затем выполнит новый. Поскольку новых дел нет, все останется чистым.