Treeview y Listview Visual Studio 2010(Resuelto)

Iniciado por n3n3, 13 Octubre 2015, 21:29 PM

0 Miembros y 1 Visitante están viendo este tema.

n3n3

Buneas, estoy trabajando en un sistema para auditorias internas de una empresa y lo unico que me falta es anexarle un modulo donde se carge una carpetas en un treeview y sus archivos en un listview, y segun el archivo que le de doble click en el listview se abra, en este caso tengo puros pdf, pero no importa solo quiero que se muestren y poder abrirlos, hasta ahora solo e logrado cargar carpetas y subcarpetas en el treeviw les dejo el codigo que tengo

Imports System.IO


Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       cargarCarpetas("C:/Manuales")
   End Sub
   Public Sub cargarSubcarpetas(ByVal rutaRaiz As String,
             ByVal nodoTree As Windows.Forms.TreeNode)
       On Error Resume Next
       Dim carpetaActual As String
       Dim indice As Integer

       If nodoTree.Nodes.Count = 0 Then
           For Each carpetaActual In
                   My.Computer.FileSystem.GetDirectories(rutaRaiz)
               indice = carpetaActual.LastIndexOf(System.IO.Path.PathSeparator)
               nodoTree.Nodes.Add(carpetaActual.Substring(indice + 1,
                    carpetaActual.Length - indice - 1))
               nodoTree.LastNode.Tag = carpetaActual
               nodoTree.LastNode.ImageIndex = 0
           Next
       End If
   End Sub

   Public Sub cargarCarpetas(ByVal rutaRaiz As String)
       Dim nodoBase As System.Windows.Forms.TreeNode

       If IO.Directory.Exists(rutaRaiz) Then
           If rutaRaiz.Length <= 3 Then
               nodoBase = TreeView1.Nodes.Add(rutaRaiz)
           Else
               nodoBase = TreeView1.Nodes.Add(
                   My.Computer.FileSystem.GetName(rutaRaiz))
           End If
           nodoBase.Tag = rutaRaiz
           cargarSubcarpetas(rutaRaiz, nodoBase)
       Else
           Throw New System.IO.DirectoryNotFoundException()
       End If
   End Sub

   Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterExpand
       Dim n As System.Windows.Forms.TreeNode
       For Each n In e.Node.Nodes
           cargarSubcarpetas(n.Tag, n)
       Next
   End Sub

   Private Sub TreeView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDoubleClick

       Dim ruta As String
       ruta = TreeView1.SelectedNode.ToString.Substring(9)
       TextBox1.Text = ruta
       Shell("explorer.exe root=" & TextBox1.Text & " ", vbNormalFocus)

   End Sub
End Class


Como ven tengo 1 treview, 1 listview y 1 textbox, espero alguien pueda ayudarme con algun ejemplo que tengan por ahi, de antemano muchas gracias.

Como siempre lo volvi a resolver yo solo, no se por que tengo mala suerte, desde que entre en este foro no me resuelven ni una pinche duda ni por muy sencilla que parezca, en este subForo de Visal Basic e posteado ya 5 veces de las cuales las 5 termino conviertonlas en aportes propios hacia la comunidad, bueno espero que por lo menos ayuden a alguien de tantos que quieren aprender y postean dudas en este foro.
"Todo lo que somos es el resultado de lo que hemos pensado; está fundado en nuestros pensamientos y está hecho de nuestros pensamientos."

n3n3

Como siempre lo volvi a resolver yo solo, no se por que tengo mala suerte, desde que entre en este foro no me resuelven ni una pinche duda ni por muy sencilla que parezca, en este subForo de Visal Basic e posteado ya 5 veces de las cuales las 5 termino conviertonlas en aportes propios hacia la comunidad, bueno espero que por lo menos ayuden a alguien de tantos que quieren aprender y postean dudas en este foro.

(Si alguien requiere el codigo por favor no dude en mandarme pm)
"Todo lo que somos es el resultado de lo que hemos pensado; está fundado en nuestros pensamientos y está hecho de nuestros pensamientos."

Lekim

#2
A lo mejor es porque estás en el foro equivocado. En teoría, esto es para VB (5 o 6)

Si es para .NET

http://foro.elhacker.net/net-b62.0/

Además, para mejor comprensión y legibilidad del código te recomiendo que uses GeShi para . Net
Código (vbnet) [Seleccionar]
Imports System.IO


Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       cargarCarpetas("C:/Manuales")
   End Sub
   Public Sub cargarSubcarpetas(ByVal rutaRaiz As String,
             ByVal nodoTree As Windows.Forms.TreeNode)
       On Error Resume Next
       Dim carpetaActual As String
       Dim indice As Integer

       If nodoTree.Nodes.Count = 0 Then
           For Each carpetaActual In
                   My.Computer.FileSystem.GetDirectories(rutaRaiz)
               indice = carpetaActual.LastIndexOf(System.IO.Path.PathSeparator)
               nodoTree.Nodes.Add(carpetaActual.Substring(indice + 1,
                    carpetaActual.Length - indice - 1))
               nodoTree.LastNode.Tag = carpetaActual
               nodoTree.LastNode.ImageIndex = 0
           Next
       End If
   End Sub

   Public Sub cargarCarpetas(ByVal rutaRaiz As String)
       Dim nodoBase As System.Windows.Forms.TreeNode

       If IO.Directory.Exists(rutaRaiz) Then
           If rutaRaiz.Length <= 3 Then
               nodoBase = TreeView1.Nodes.Add(rutaRaiz)
           Else
               nodoBase = TreeView1.Nodes.Add(
                   My.Computer.FileSystem.GetName(rutaRaiz))
           End If
           nodoBase.Tag = rutaRaiz
           cargarSubcarpetas(rutaRaiz, nodoBase)
       Else
           Throw New System.IO.DirectoryNotFoundException()
       End If
   End Sub

   Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterExpand
       Dim n As System.Windows.Forms.TreeNode
       For Each n In e.Node.Nodes
           cargarSubcarpetas(n.Tag, n)
       Next
   End Sub

   Private Sub TreeView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDoubleClick

       Dim ruta As String
       ruta = TreeView1.SelectedNode.ToString.Substring(9)
       TextBox1.Text = ruta
       Shell("explorer.exe root=" & TextBox1.Text & " ", vbNormalFocus)

   End Sub
End Class





Se me olvidaba...
En el directorio de instalación de VB.NET 2010 puedes encontrar un archivo comprimido con ejemplos, concretamente en:
C:\Program Files\Microsoft Visual Studio 10.0\Samples\3082

Encontrarás un archivo ZIP llamado VBSamples.zip. Dentro del mismo una carpeta llamada Winforms Samples y dentro de ésta, otra llamada ExplorerApp que contiene un ejemplo de Explorador de carpetas, con función doble clic sobre los archivos para abrirlos.

Saludos