-1

アプリケーションに取り消し/やり直し機能を提供したいと考えています。

例として、次の一連の呼び出しについて考えてみましょう。

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

呼び出しをある種のリストに保存し、元に戻すことができるようにしたいと思います。これを行う良い方法は何ですか?

4

2 に答える 2

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));
于 2012-10-26T07:32:09.540 に答える
2

リフレクションを使用してメソッドのリストを取得できます: http://msdn.microsoft.com/en-us/library/4d848zkb.aspx

しかし、「元に戻す」ボタンについては、以前のビットマップを保持するために、ある種のキャッシュを使用する必要があると思います。最後の 10 回の移動 (ビットマップ) をメモリに格納し、次の移動を一時ファイルに格納できるとします。

于 2012-10-26T07:36:19.923 に答える