2016-11-22 16 views
0

私はVirtualTree.IsVisible[n] := false;を使っていくつかのVirtualTreeViewアイテムを隠しました。どのように表示するかVirtualTreeViewの表示項目のみ

1つの関数では、VirtualTree.GetNextSelected(n);メソッドを使用してすべての選択項目を反復処理します。しかし、問題があります。たとえば、Ctrlキーを押しながらShiftキーを押しながらいくつかの項目を手動で選択すると、選択された項目がループします。

Ctrlキーを押しながらAを押してすべてを選択すると、GetNextSelectedは私にすべてのノードを表示します。

私はif (VirtualTree.IsVisible[n]) ...をチェックしてすべてのアイテムをループしないようにしましたが、目に見えるものだけをフェッチしましたが、これはバグのようです。あるいは、CTRL + Aがどのように動作するかを制御するオプションがあります。またはそれらのすべて?

これはバグですか、いくつかの選択肢がありませんでした(私はそれらをすべて調べました)か、または可視ノードだけをループするための他の方法を使用するはずですか?

+2

これはバグではなくデザイン上の選択です。あなたはそれに適応する必要があります。 –

+1

@DavidHeffernanこれは本当ですか?なぜキーボードのShift +矢印キーを使用して選択すると、表示されているノードだけが選択され、隠されている可視ノード間のすべてのノートが選択されないのですか? CTRL + Aは隠れたものを選択しますが、SHIFT + Arrowは選択しないのは奇妙です。 – Coder12345

+2

CTRL + AについてVirtual TreeViewはほとんどの他のコントロールやWindowsエクスプローラと同様に動作しますが、ユーザーにとっては予期せぬ動作が予想されます。 –

答えて

1

David HeffernanとJoachim Marderのように、設計上の選択であり、バグではありません。このため、GetNextSelectedを使用してアイテムをループするときには、if (VirtualTree.IsVisible[n]) ...をチェックして目に見えるアイテムだけをループすることで回避策を導入する必要があります。

関連する問題