none
Acessar um Node de um TreeView diretamente pelo nome RRS feed

  • Pergunta

  • Colegas,

    Tenha um TreeView chamado TV com diversos nodes, cada um deles com a propriedade Name = "A" & Rd("ChaveDaArea")

    ChaveDaArea é o campo de uma tabela de um banco de dados, obtida de DataRead chamado RD

    Gostaria de acessar um node diretamente por este nome para inserir outro Node filho. Estou usando TV.Nodes("A" & Rd("ChaveDaArea")), mas não consigo, preciso colocar o index. Sei que poderia percorrer todo o TV por:

    For i = 0 to TV.Nodes.Count -1

    Mas não gostaria de fazer assim, mas acessar diretamente um Node pelo seu nome. Alguma idéia?

    quinta-feira, 8 de junho de 2017 13:57

Respostas

  • Bosco Pedrosa

    Te sugiro abrir essa questão como uma questão de How to/Customização, não como uma pergunta de Break Fix/Erro...

    Abrindo como uma discussão a comunidade pode te ajudar a encontrar a solução para o teu problema, do melhor jeito possível. A melhor implementação.

    Como pergunta, o pessoal geralmente vem para corrigir um erro.

    Para abrir uma discussão, é o mesmo processo de criar uma pergunta, mas ao invés de marcar como pergunta, você marca como discussão.

    Ex:

    • Marcado como Resposta Bosco Pedrosa quinta-feira, 8 de junho de 2017 17:45
    quinta-feira, 8 de junho de 2017 17:32

Todas as Respostas

  • Boa tarde, Bosco Pedrosa. Tudo bem?

    Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?
    quinta-feira, 8 de junho de 2017 16:06
  • Filipe,

    Na linha destacada em negrito abaixo, do código: 

                    Try
                        NoArea.Name = "A" & Rd("Areas.ChaveArea")
                        NoArea.Text = Rd("Area")
                        NoArea.ImageIndex = 0
                        NoArea.SelectedImageIndex = NoArea.ImageIndex
                        tvDemandasLocalizadas.Nodes.Add(NoArea)
                    Catch ex As Exception

                    End Try

                    Try
                        NoProj.Name = "P" & Rd("Projetos.ChaveProjeto")
                        NoProj.Text = Rd("Projeto")
                        NoProj.ImageIndex = 1
                        NoProj.SelectedImageIndex = NoArea.ImageIndex
                        tvDemandasLocalizadas.Nodes("A" & Rd("Areas.ChaveArea")).Add(NoProj)
                    Catch ex As Exception
                        MsgBox(ex.Message)
                    End Try

    Obtenho o seguinte erro:

    Membro público 'Add' no tipo 'TreeNode' não encontrado.

    Estou querendo inserir um nó filho diretamente setando pelo Name do nó pai que já está inserido no tvDemandasLocalizadas.

    quinta-feira, 8 de junho de 2017 16:49
  • Você está procurando o melhor Jeito para implementar essa parte do teu código, isso?
    quinta-feira, 8 de junho de 2017 16:54
  • Isso mesmo. Não gostaria de ter que percorrer todo o TreeView para encontrar um determinado Node, gostaria de inserir um Node filho a partir da propriedade Name de outro Node, mesmo porque este trecho estará em Loop e meu TreeView tem quatro camadas, assim:

    Projeto01
        Área01
            Demanda01
                Ação01
                Ação02
                Ação03
            Demanda02
                Ação01
                Ação02
    Projeto02
    (...)
    ProjetoN

    Então ficaria visualmente pesado e complicado para futuras mudanças colocar tantos Loops.

    quinta-feira, 8 de junho de 2017 17:23
  • Bosco Pedrosa

    Te sugiro abrir essa questão como uma questão de How to/Customização, não como uma pergunta de Break Fix/Erro...

    Abrindo como uma discussão a comunidade pode te ajudar a encontrar a solução para o teu problema, do melhor jeito possível. A melhor implementação.

    Como pergunta, o pessoal geralmente vem para corrigir um erro.

    Para abrir uma discussão, é o mesmo processo de criar uma pergunta, mas ao invés de marcar como pergunta, você marca como discussão.

    Ex:

    • Marcado como Resposta Bosco Pedrosa quinta-feira, 8 de junho de 2017 17:45
    quinta-feira, 8 de junho de 2017 17:32
  • Obrigado e um abraço.
    quinta-feira, 8 de junho de 2017 17:45