我在写个绘图程序,用何原理如何实现Undo Redo?

解决方案 »

  1.   

    大家来QQ群里讨论吧,我找了几个比较好的技术群,大家分享一下!C#.net 梦想:QQ群:群号:9700396C#.net 开发:QQ群:群号:9715298C# Windows 程序设计:QQ群:群号:14407665C#.Net 学习:QQ群:群号:2448263.net+水晶报表群:QQ群:群号:14819489
      

  2.   

    好像每个文件的undo、redo操作都是和一个备份文件相关联的。
    用备份文件保存全部的操作,如果你点击undo、redo时,从备份文件中找到原始数据恢复到当前操作中。
      

  3.   

    实现了IDraw接口的对象数组,或者ArrayList也好。
    UnDo时画面清空,从数组或ArrayList画到MaxIndex-1;
    再UnDo时画的范围又减1.这方面实在没经验,瞎说的。
      

  4.   

    没做过画图的,觉得画图,我想也是通过很多命令来操作的,比如说点下鼠标开始画线,松开鼠标,结束画线我想如果说,将每个操作都放到arrylist的话,那么undo的时候,只要将最近的那组命令或者动作取出来,放到另外一个redo的allylist上的话。这样应该可以实现吧个人观点
      

  5.   

    谢谢大家的关注,但我这个绘图不是按命命绘的,比如绘了一个矩形,就new出一个RectObj类,有它的坐标,大小,颜色等,还要Add到一个CollectionBase