付箋紙ソフトのデータを保存できるようにします。基本的に常駐させるソフトなので普段はタスクトレイのなかに表示させて必要なときにメインフォームを表示させ操作ができるようにします。

このときアイコンが必要になるので以前作成したアイコンエディタで作成しました。

アイコンエディタをつくってみる

付箋紙ソフトなのでアイコンは「付」? ただこれは32ビットなので通常のアイコンのようには使えません。そこでPNG形式で保存します。そしてアイコンとして使えるようにします。

NotifyIconコントロールを使って、「×」ボタンを押しても終了せずフォームが非表示になるだけにしています。タスクトレイのアイコンをクリックすれば再度フォームが表示され、本当に終了させたいときはメニューの[終了]をクリックします。

肝心の付箋紙のデータを保存するときはどうすればいいでしょうか? アプリが終了するときが適切であると思われます。そして次回起動時に保存されていたデータを手がかりに付箋紙を復元します。

新しい付箋紙を作成するとき、これまで以下の方法でやってきましたが、作成した付箋紙を管理できるように変更します。

<変更前>

<変更後>

データファイルを保存する場所は実行ファイルがあるフォルダと同じでよいと考えます。

これで実行ファイルがあるフォルダと同じにData.xmlというファイルが生成されて、そのファイルにデータに保存されます。

データは終了時に保存されるので[終了]メニューがクリックされたときでいいでしょう。SaveFusenInfo()がデータを保存するためのメソッドです。

付箋のなかには使わなくなったのでDisposeされているものもあるはずです。そのようなものは対象外とします。そしてForm2..GetFusenInfo()メソッドで保存すべき情報を取り出します。そしてこれをリストに格納してXML形式で保存します。

これは保存するデータを取得するためのメソッドです。フォームと付箋のサイズと表示位置、付箋に書かれている文字列、不透明度、背景色がFusenInfoオブジェクトとして取得されます。

次にこれをつかって次回起動時に付箋を再生するためのメソッドを示します。

まずはXMLファイルを読み出します。読み出すタイミングはForm1クラスのコンストラクタでよいと思われます。

初めて起動したときはファイルは存在しないので、そのときはなにもしません。ファイルが存在するときはデシリアライズしてそこからDoc.FusenInfosを取り出します。そしてForm2.SetFusenInfoメソッドで付箋を表示させます。

Form2.SetFusenInfoメソッドはこのようになっています。

これでアプリケーションを起動したときに付箋が表示されるようになります。