同期化されたTreeViewを複数作成して、ひとつのTreeNodeのTextが変更されたら他のビューにも反映させます。

今回は簡単です。今回もこれを使います。

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

これでラベルを変更することができます。ラベルを変更すると対応する別のTreeViewのノードのラベルも変更されます。SyncTreeView内ではこのような処理がおこなわれています。

OnAfterLabelEditメソッドの引数をしらべれば、どのノードのラベルがどんな文字列に変更されたのかを知ることができます。

注意することとして、ラベルを変更しようとしたけど変更しなかった場合、NodeLabelEditEventArgs.Label == nullになることがあげられます。そのためSyncTreeView.OnAfterLabelEdit内でe.Label == nullのときはなにもしないことにしています。

これで片方のラベルを変更するともうひとつのTreeViewにも反映されるようになります。

ちょっとこれでは短すぎる(1000文字に満たない)ので、アイコンも同じように変化させるプログラムをつくります。

上記は複数のTreeViewの対応するアイコンを同時に変更します。

下記はひとつのTreeViewのアイコンのみを変更します。