Jump to content

Recommended Posts

Posted

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á 🙂

Posted

Oi;

Tenta assim:

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

E bem vindo a comunidade 🙂

Making the impossible possible and pwing the world on db at a time.

Posted

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)

Posted

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. 🙂

Posted
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.

Making the impossible possible and pwing the world on db at a time.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.