検索機能を追加する 俺的アウトラインプロセッサーをつくる(その10)

前回は検索結果を表示する機能を追加しました。

ところでノードが削除された場合、検索結果も変更しなければならない場合があります。今回はそれについて考えます。

ノードが削除されることでいっしょに削除されてしまう子ノードは、SyncTreeView.GetTreeNodeExsを使えばわかります。そこで検索結果のなかにSyncTreeView.GetTreeNodeExs(deleteNodes)があるかどうかを調べればよいということになります。

以下は検索結果のなかに削除されるアイテムがあれば、リストボックスのなかから削除するメソッドです。リストボックスは削除後でも同じアイテムが選択されるようになっています。また削除に伴って選択されているアイテムが変化しても影響がでないように、フィールド変数 SearchResultForm._isIgnoreSelectChangedで制御しています。

次にSearchResultFormクラスを示します。

Form1.SaveToMoromyメソッドも少し変更する必要があります。