2012-10-26 5 views
-2

내 응용 프로그램에서 실행 취소/다시 실행 기능을 제공하고 싶습니다. 나는 어떤 종류의 목록에서 호출을 저장하고이를 취소 할 수 있도록하고 싶습니다그래픽 응용 프로그램에서 실행 취소/다시 실행

gr.Drawrectangle(pen, p1, p2); 
gr.FillEllipse(brush, p1, dx, dy); 

:

는 예를 들어, 호출이 시리즈를 고려하십시오. 이것을하는 좋은 방법은 무엇입니까?

+2

목표는 무엇입니까? (즉, 어떤 문제를 해결하려고합니까?) –

+1

왜 이것을 목록에 결합하고 싶습니까? –

+0

나는 프로그램과 같은 MS Paint를 만들기 위해 노력하고있다. 예를 들어 사용자가 '실행 취소'를 누르면 목록에서 마지막 값을 삭제하려고합니다. –

답변

3

나는 당신이 원하는 것을 완전히 이해하지는 않지만 행동이나 기능의 목록을 만들 수 있습니다.

List<Action<Graphics>> actions = new List<Action<Graphics>>(); 

actions.Add(gr => gr.Drawrectangle(pen, p1, p2)); 
actions.Add(gr => gr.FillEllipse(brush, p, x, y)); 
2

당신은 방법의 목록을 가져 반사를 사용할 수 있습니다

그러나 대한 http://msdn.microsoft.com/en-us/library/4d848zkb.aspx 내가 생각하는 버튼, 당신은 이전의 비트 맵을 유지하기 위해, 캐시의 어떤 종류를 사용한다 '취소'. 마지막 10 개의 동작 (비트 맵)을 메모리에 넣고 다음은 임시 파일로 옮길 수 있습니다.

관련 문제