Originariamente inviato da Zlatan8.
Ho trovato un esempio su planet source code...È un po' complesso, ma guarda se riesci a capire...
Magari se segnalavi il link del progetto... :quote:
Sarebbe stato utile. O no?

Originariamente inviato da Zlatan8.
Secondo me però potresti fare così: tu ogni volta che disegni un cerchio, ti vai a memorizzare le coordinate x1,y1 e x2,y2 in un array...Poi cancellando le coordinate dall'array, cancelli anche il cerchio...
Dubito molto che così possa funzionare. Metti il caso che precedentemente 'sotto' al cerchio esistessero altri disegni? Cancelleresti anche una parte di essi.

No, secondo me se lospanu vuole implementare l'Undo deve fare essattamente come fanno tutti gli altri programmi, ovvero mantenere <n> copie in base al numero di livelli di undo intende rendere disponibili.
Non è così difficile, basta creare un array di oggetti STDPicture in memoria, appena terminata la modifica (evento Mouse_Up del PictureBox) memorizza l'immagine nel primo oggetto STDPicture libero.
Poi, quando l'utente richiede l'Undo, si copia l'immagine dall'oggetto STDPicture precedente e la si incolla nel PictureBox.