質問: C#でお絵かきソフトを作成しています。 undo,redo機能を実装したいのですが取り掛かりがわからずに困っております。 いろいろと調べてみたのですがどのようにコードを組み込めばよいのかがわかりません。 よろしくお願いいたします。 現在、自由線描画、直線描画、全消去、保存、読み込み機能があります。 マウス操作の前後でundo,redoを行いたいと思っております。
回答: こんにちわ undo/redo を実装するなら、スタンダードかどうかわかりませんが、僕の方法をつたえます。 ツール関連の処理で実装するなら、ドットを打つ、という動作をコマンドとして実装しましょう。 そうすれば、コマンドのログを取っていればundo/redoは簡単にできると思います。 他にも、ラインを引くなど、基本的な機能はコマンドにして、それのログを取って戻れるようにすれば 実装できるとおもいます。もちろん、コマンドとともに変更前のデータも保存しないとダメですが。 そこは工夫して保持するデータを考えてみてください。 あ、データの保存は「スタック」します。 この言葉が判らない場合は、ググってください。