• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Cocolin

Problema de TreeView

8 mensagens neste tópico

Boas.

Esta será a minha segunda mensagem aqui (a primeira foi a apresentação:P)

Eu ando-me a iniciar em VB.Net e isto anda complicadito.

Por tanto vou aqui meter uma duvida que já me anda a dar cabo da cabeça.

A situação é esta: Eu tenha uma main folder com subfolders. E essas subfolders têm diferentes ficheiros html.

O que eu quero, é que numa treeview me apareçam o nome das subfolders dessa main folder, e numa filebox me apareçam os ficheiros que estam na folder que eu escolher. (atraves dum clique numa node do treeview)

O codigo que já tenho é este:

(mete-me as nodes com o nome das pastas...)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim dfarray As Array
        DirListBox1.Path = TextBox1.Text
        TreeView1.Nodes(0).Nodes.Clear()
        dfarray = System.IO.Directory.GetDirectories(DirListBox1.Path)
        For i = 0 To dfarray.Length - 1
            TreeView1.Nodes(0).Nodes.Add(dfarray(i))
        Next i
        TreeView1.Nodes(0).Expand()
    End Sub

Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e
As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick

        FileListBox1.Path = TreeView1.SelectedNode.Name

e este devia meter-me a filelistbox na pasta que eu queria (escolhida na treeview).

só que dá-me um erro a dizer: "Object reference not set to an instance of an object."

E pronto.. queria que me ajudassem nesse erro, e arranjassem uma maneira de me meter isto a funcionar pk já me anda a matar a cabeça.

Qualquer duvida que tenham quanto ao projecto é só perguntar.

Muito obrigado desde já :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi;

Tenta assim:

If TreeView1.SelectedNode IsNot Nothing Then
      FileListBox1.Path = TreeView1.SelectedNode.Name
Else
      FileListBox1.Path = ""
End If

E bem vindo a comunidade :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

primeiro que tudo, obrigado pela resposta. já estava a ficar preocupadito ninguem me ligar nenhuma :)

segundo, epá eu já tentei isso, mas não sei porquê, o "TreeView1.SelectedNode.Name" não contem qualquer valor, ou então contem o valor "Clientes".

Conclusão.. ou não dá erro e nao faz nada.. ou dá erro a dizer :

"Path not found: "C:\Documents and Settings\.....\Ambiente de trabalho\WindowsApplication1\WindowsApplication1\bin\Debug\Clientes""

Eu não sei é como hei-de buscar o nome da node... pk parece que pelo treeview1.selectednode.name o gajo vai buscar a node principal (a 1ª [clientes] )... em vez da node em que clico... (que sempre uma child da principal)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu já fui ver, mas acho qe não fiz confusão nenhuma.

Após 3 dias de buscas e tentativas... cheguei lá xD

Private Sub TreeView1_AfterSelect_
(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs)_
Handles TreeView1.AfterSelect

Dim _foldername As String = TextBox1.Text & "\" & TreeView1.SelectedNode.Text 

isto já faz o que quero.

E até pode parecer estranho... mas eu acho que isso é do evento. Pk eu experimentei tudo e mais alguma coisa como o evento "NodeMouseClick" que supostamente devia fazer o mesmo... (acho eu =x )... e nunca deu.

Agora na net encontrei uma cena parecida com esta... e reparei que tava "AfterSelect". E assim já deu.

Pronto.

Sendo assim, muito obrigado pela ajuda fLaSh_PT.

Cumprs. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

TreeView1.SelectedNode.Text 

Podes usar antes esta propriedade

É que eu faço.. porque se tiveres vários nodes (pai) vai te dar confusão..

TreeView1.SelectedNode.SelectedNode.FullPath

Compr.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok. obrigado pela dica :)

(não é por nada, mas nesta secção não tem a cena do "solved" ?)

cumpr. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

(não é por nada, mas nesta secção não tem a cena do "solved" ?)

Porque não estava no sítio certo! ;)

Agora já está.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora