前回はファイルの履歴を表示させました。

ファイルの履歴を表示する方法

ただ、これにはいくつかの問題があります。それは表示件数を変えることができないことです。ファイルを開いたり別名保存を繰り返すたびに履歴はどこまでも増えていきます。

それから新しい履歴ほど上に表示させたいものです。

ではそのようにつくりかえてみましょう。

まずファイル履歴を管理するためのフィールド変数をつくります。

そしてファイルが保存されたり読み出されたらfileHistoryにファイルパスを追加します。このときに新しいものを先頭に追加して、上限を超えていれば一番古いもの(一番後ろにあるもの)を削除してしまえばいいですね。

そして[ファイル]がクリックされたらサブメニューがドロップダウンされるのですが、そのときにfileHistory内にあるファイルパスのリストを表示させます。

メニューにファイル履歴を追加するときに呼び出されるAddFileHistoryメソッドは以下のように変更します。

リストの最初に追加します。またここで重複登録や存在しないファイルの登録のチェックもおこないます。それからTakeをつかって最大件数を超えたものはリストから排除されるようにしています。

[ファイル]のサブメニューがドロップダウンされるときにファイル履歴を追加します。

SaveFileHistory と Item_Click は前回と同じです。