Pergunta

Eu estou usando um controle de formulários TreeView o Windows no meu programa. Gostaria de permitir que o usuário para selecionar vários nós no mesmo nível, arrastando o seu ponteiro do mouse em torno (também chamado de uma seleção "laço"). Eu não acho que um TreeView padrão permite isso.

A minha pergunta é qual seria a melhor maneira de conseguir isso? Eu tenho que escrever comportamento seleção personalizada de minha autoria no talvez um costume ou controle derivado? Por onde eu começo?

Eu não preciso de uma explicação detalhada. Apenas um pequeno empurrão na direção certa.

Foi útil?

Solução

Isto não vai ser fácil de fazer com um controle WinForms TreeView padrão. O controle TreeView só suporta seleção única por árvore. Não é possível selecionar simultaneamente vários nós na árvore.

A fim de obter esse comportamento você provavelmente iria acabar precisando criar uma classe muito semelhante ao TreeView que permitiu a seleção múltipla. Outra opção é derivar de TreeView e permitir a seleção múltipla, substituindo comportamentos específicos. Aqui está um artigo sobre como fazer o segundo.

Outras dicas

Considere a implementação de seleção múltipla em um controle que a seleção suporta múltiplos como listview. Se você seguir os padrões que a maioria dos usuários do Windows entendo que você vai acabar com uma solução que é mais fácil de implementar e fácil de usar.

Se você realmente precisa de algo mais elaborado pode ser necessário considerar o desenvolvimento de um controle personalizado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top