5


1

プログラムでWindowsフォームのTreeViewコントロールを使用しています。 ユーザーがマウスポインタをドラッグして同じレベルで複数のノードを選択できるようにしたい(「なげなわ」選択とも呼ばれる)。 標準のTreeViewでそれが可能になるとは思いません。

私の質問はこれを達成するための最良の方法は何だろうか? 私は自分自身のカスタム選択の振る舞いをおそらくカスタムまたは派生コントロールに書く必要がありますか? どこから始めますか?

詳しい説明は必要ありません。 正しい方向に少し動かすだけです。

2 Answer


6


これは標準のWinFormsの `TreeView`コントロールでは簡単にはできません。 `TreeView`コントロールはツリーごとの単一選択のみをサポートします。 ツリー内の複数のノードを同時に選択することはできません。

この振る舞いを得るためには、複数選択が可能な `TreeView`と非常によく似たクラスを作成する必要があるでしょう。 別の選択肢は `TreeView`から派生し、特定の振る舞いを上書きすることによって複数選択を可能にすることです。 これは後者のやり方についての記事です。


0


listviewのように複数選択をサポートするコントロールに複数選択を実装することを検討してください。 ほとんどのWindowsユーザーが理解している標準に従うと、実装が簡単で使いやすいソリューションになります。

もっと複雑なものが本当に必要な場合は、カスタムコントロールの開発を検討する必要があります。