2009-11-03 33 views
5

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

私の質問は、これを達成するための最良の方法は何ですか?おそらくカスタムコントロールまたは派生コントロールで私自身のカスタム選択動作を記述する必要がありますか?どこから始めますか?

詳細な説明は必要ありません。正しい方向へのちょっとした動き。

答えて

6

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

この動作を実現するには、複数の選択が可能な非常に似たクラスTreeViewを作成する必要があります。別のオプションは、TreeViewから派生し、特定の動作をオーバーライドすることによって複数の選択を可能にすることです。後者の方法についての記事があります。

+0

私は、複数選択を行うためのカスタムコントロールのアプローチを理解しています。どのような方向性を示唆していますか?私は「ラッソ」の選択肢を実装するために取るべきですか?私はGDIレベルのカスタム図面に頼らなければならないのですか、Windowsがこれを公開しているAPIがありますか? –

+0

@Frederick、私はそれについての素晴らしい人のコメントではありません。私の提案は、一般的なWinFormコントロールでのラッソ選択の実装方法に焦点を当てた別の新しい質問を開くことです。そうすればより良い結果が得られるはずです。 – JaredPar

+0

Thanks Jared。私はちょうどそれをします。 –

0

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

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

関連する問題