ファイルに保存する

ツリービューのアイテムをファイルに保存してみましょう。

俺的ライブラリをつくる 同期化されたTreeView編

SyncTreeView内にGetTreeNodeExsというメソッドを作成しています。これはツリービュー内のTreeNodeをリストに格納して、シリアル化するために必要なTreeNodeのデータをTreeNodeExオブジェクトにコピーをしています。

TreeNodeExクラスはこんな感じ。

ファイルから読み出す

ファイルとして保存できたら読み出しもできるようにしたいものです。ファイルから読み出すためには

これで読み出すことができます。読み出したデータをつかってツリービューのアイテムを再構築する必要がありますが、これをやっているのがRestoreNodesメソッドです。

ノードをつくるためには親ノードが必要です。そのためノードをつくったらその階層の最後のアイテムがなにかわかるように配列内に保存しています。これをつかってツリーアイテムを再構築しています。ひとつできあがったらそのコピーをつくって他のツリービューにもアイテムを挿入しています。またノードの開閉状態も再現しています。

アイテムの色、背景色はColor型からint型に変換して保存していますが、そのままではBackColorはColor.Emptyになっています。そのままBackColor.ToArgb()を実行すると0が返され、これをそのまま利用するとノードの背景色が黒になってしまいます。そこでファイルを読み取ったときにBackColorArgbが0のときはColor.FromArgbは使わずColor.Emptyを設定しています。