none
Foco em um nó do TreeView RRS feed

  • Pergunta

  • Bom dia,

    Gostaria de saber como posso colocar o foco em um determinado nó de um TreeView, igual quando clicamos com o mouse. Mas neste caso, vou colocar o foco em um certo nó no OnLoad do Form, e não clicando.

     

    Tentei algo como:

    treeFiles.SelectedNode = videosNode;

     

    Mas o nó não está "realçado" com a cor azul.

     

    Alguém sabe como fazer?

     

    Obrigado,

    Ewerton.

    • Editado Ewerton Rubio terça-feira, 4 de maio de 2010 13:55 adicionar informação
    terça-feira, 4 de maio de 2010 13:53

Respostas

  • Bom dia !

    Tente o seguinte:

     string nodeToSelect = "SeuNode";
      for(int i = 0; i < tree.Nodes.Count; i++) 
      {
        if(tree.Nodes[i].Text == nodeToSelect) 
        {
          tree.SelectedNode = tree.Nodes[i];
        }
      }
      tree.Select();
    Este loop percorre todos os nós, e seleciona o nó com o texto contido no nodeToSelect. No entanto, pode tornar um problema quando  temos mais nós com mesmo texto.
    sexta-feira, 14 de maio de 2010 15:22
    Moderador

Todas as Respostas

  • Testa ai amigo:

     

        Me.TreeView1.SelectedNode = Me.TreeView1.Nodes("Node1")
        Me.TreeView1.TabIndex = 0


    msn: poseidonfba@hotmail.com
    terça-feira, 4 de maio de 2010 14:32
  • Internamente o foco está sim naquele nó, mas não é perceptível para o usuário, não está ficando com o nó "realçado" em azul (igual quando clicamos em um nó).

    Alguma outra sugestão?

     

    Obrigado,

    Ewerton.

    quarta-feira, 5 de maio de 2010 12:03
  • O node que vc está tentando selecionar é do tipo Root ou Child ???

    msn: poseidonfba@hotmail.com
    quarta-feira, 5 de maio de 2010 12:18
  • Child.
    quarta-feira, 5 de maio de 2010 12:21
  • Então tem que ser algo desse tipo, no load

     

            TreeView1.SelectedNode = TreeView1.Nodes(0).Nodes(0)
            TreeView1.TabIndex = 0


    msn: poseidonfba@hotmail.com
    quarta-feira, 5 de maio de 2010 12:24
  • Seguindo a sua indicação, tentei isso:

    treeFiles.SelectedNode = treeFiles.Nodes[0].Nodes[0];
    treeFiles.TabIndex = 0;

    Mas não funcionou.

     

    A minha estrutura é assim.

    Root
      |_ Videos
            |_ 1
            |_ 2
            |_ 3
            |_ 4

     

    Gostaria que o nó Videos ficasse Selecionado.

    Obrigado,

    Ewerton.

    quarta-feira, 5 de maio de 2010 12:34
  • Quando executar o program, ve para onde está indo o foco, o cursor.

     

    Podes tentar desta forma também

     

                treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0];
                treeView1.HideSelection = false;

    Assim ele mostra com um fundo cinza o item selecionado mesmo sem o focus


    msn: poseidonfba@hotmail.com
    quarta-feira, 5 de maio de 2010 12:52
  • O foco está em um botão, mas quando eu coloco treeView1.SelectNode = treeView1.Nodes[0].Nodes[0] eu sei que o foco está naquele nó através de um if, apenas o usuário que não percebe.

     

    Sobre a segunda opção funcionou...

    fica com um fundo cinza.

    Teria como ficar azul?

     

    Obrigado,

    Ewerton.

    quarta-feira, 5 de maio de 2010 13:10
  • Eu nunca tentei ver se tem como mudar essa cor, mais creio que deve ser complicado por ser do sistema.

     


    msn: poseidonfba@hotmail.com
    quarta-feira, 5 de maio de 2010 13:31
  • Bom dia !

    Tente o seguinte:

     string nodeToSelect = "SeuNode";
      for(int i = 0; i < tree.Nodes.Count; i++) 
      {
        if(tree.Nodes[i].Text == nodeToSelect) 
        {
          tree.SelectedNode = tree.Nodes[i];
        }
      }
      tree.Select();
    Este loop percorre todos os nós, e seleciona o nó com o texto contido no nodeToSelect. No entanto, pode tornar um problema quando  temos mais nós com mesmo texto.
    sexta-feira, 14 de maio de 2010 15:22
    Moderador