現在實作了畫圖 先畫好幾個黑點,然后再任意將兩個點連起來,也實作了撤銷和重作功能,但是我畫點的時候是將點坐標存盤到集合里面了,我撤銷或者重作的時候如何才能實作集合也相應的洗掉或者增加點呢?
uj5u.com熱心網友回復:
集合不是有remove和add方法么uj5u.com熱心網友回復:
可是我怎么知道我撤銷的是線段還是點呀,撤銷線段我就不需要操作,撤銷點我才需要修改集合uj5u.com熱心網友回復:
你撤銷功能不是搞好了,自己不知道撤銷的是什么???uj5u.com熱心網友回復:
在線敲代碼,
Class void Main()
{
List<RecentAction> RAS=new List<RecentAction>()
if(you draw something)
{
RecentAction RA=new RecentAction ()
RA.Xx=xx;
RA.Yy=yy;
RA.add(RA)
}
}
Class RecentAction()
{
ActionType at{get;set;}
List<Point> point{get;set;}
}
enum ActionType
{
line,
point,
and more....
}
uj5u.com熱心網友回復:
當你撤銷的時候,從RecentAction中找到要洗掉東西,里面有你在集合中需要同步洗掉的資料。uj5u.com熱心網友回復:
用一個堆疊,把你每次的操作都記錄下來。然后做逆操作。uj5u.com熱心網友回復:
看一下命令模式,專門為撤銷重做定制的設計模式uj5u.com熱心網友回復:
在你繪制的程序中加一個屬性,記錄是繪制點還是線。這樣你就知道你是撤銷線還是點。
uj5u.com熱心網友回復:
不是刪點嘛,點在繪制區域是不是有x,y,集合里是不是也有 x,y ,兩者相同不就找到了嗎,能找到不就能刪了嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/net/64919.html
標籤:C#
