none
ListBox abrir carpetas y archivos en el RRS feed

  • Pregunta

  • Desearía su ayuda para cargar en un ListBox las carpetas de un directorio, enlistar las carpetas que estan en un directorio y a su vez me genere  en una Label el numero con respeto al orden numérico en la lista cuando se seleccione la carpeta del ListBox.

    Tengo mas o menos la pauta quien me puede ayudar a terminarlo :* 


    Public Class Form1
        Dim CARPETA As String

        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            If FolderBrowserDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                CARPETA = FolderBrowserDialog1.SelectedPath

     End If


    • Editado Catia123 domingo, 22 de noviembre de 2015 5:27
    domingo, 22 de noviembre de 2015 5:27

Respuestas

  • "Catia123" preguntó:

    > Desearía su ayuda para cargar en un ListBox las carpetas de un directorio,
    > enlistar las carpetas que estan en un directorio ...

    Hola:

    Para obtener los subdirectorios existentes en un directorio especificado, puedes hacer uso del método IO.Directory.GetDirectories, el cual te devolverá una matriz de valores String con los nombres de los subdirectorios:

    Imports System.IO
    
    
        Private CARPETA As String
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            If (FolderBrowserDialog1.ShowDialog <> DialogResult.OK) Then
                ' Si se ha cancelado el cuadro de diálogo, limpiamos
                ' el valor del campo CARPETA.
                '
                carpeta = String.Empty
    
                ' Y abandonamos el procedimiento.
                '
                Return
            End If
    
            ' Carpeta seleccionada por el usuario.
            carpeta = FolderBrowserDialog1.SelectedPath
    
            ' Limpiamos el control ListBox.
            ListBox1.Items.Clear()
    
            Try
                ' Obtenemos una matriz con los nombres de los subdirectorios
                ' existentes en el directorio seleccionado.
                '
                Dim subcarpetas As String() = IO.Directory.GetDirectories(carpeta)
    
                ' Conforme recorremos la matriz obtenida vamos rellenando
                ' de valores el control ListBox.
                '
                For Each item As String In subcarpetas
                    ListBox1.Items.Add(item)
                Next
    
                ' Seleccionamos el primer elemento del control ListBox.
                '
                ListBox1.SelectedIndex = 0
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)
    
            End Try
    
        End Sub
    

    > ... y a su vez me genere  en una Label el numero con respeto al orden numérico
    > en la lista cuando se seleccione la carpeta del ListBox.

    Si te refieres a que en un control Label se muestre el número correspondiente al índice del elemento actualmente seleccionado en el control ListBox, tan solo tienes que consultar el valor de su propiedad SelectedIndex, teniendo en cuenta que los índices de la colección están en base cero: el primero tiene el índice 0, el segundo el índice 1, el tercero el 2, etc.

    Implementa el evento SelectedIndexChanged del control ListBox para ejecutar algo parecido a lo siguiente:

        Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
    
            ' Como los índices de los elementos del control ListBox están en base 0,
            ' sumamos una unidad al índice actualmente seleccionado.
            '
            Dim index As Integer = ListBox1.SelectedIndex + 1
    
            Label1.Text = index.ToString()
    
        End Sub
    

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    domingo, 22 de noviembre de 2015 7:20
    Moderador