none
Como quitar .pfd de un Listbox y preguntas sobre listbox

    Pregunta

  • Como dice la pregunta como puedo quitar la extencion pdf de un listado Listbox, solo deseo que quite la extensión mas no la búsqueda de los *.pdf 

    Option Explicit On
    Option Strict On
    
    Imports System.IO
    
    Public Class Form1
    
        Private Sub Form1_Load( _
            ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles MyBase.Load
            For Each archivos As String In Directory.GetFiles("E:\ARCHIVOS", _
                                                              "*.pdf", _
                                                              SearchOption.AllDirectories)
                archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString
                ListBox1.Items.Add(archivos.ToString)
            Next
    
        End Sub
    End Class

    Las siguientes preguntas son estas:

    ¿se puede quitar el fondo de un listbox y dejarlo transparente?

    ¿como cambiar el color de la selección en un listbox?

    ¿se puede hacer que cuando hago una selección con la tecla de dirección abajo y arriba se llega al final regrese al dato primario y si subo arriba del dato 1 se valla al ultimo, que con las teclas de subir y bajar si se oprimen nunca se detenga de moverse en algún dato, siga girando en los datos que contenga el listbox?  

    Saludos


    • Editado Cael1020 lunes, 26 de septiembre de 2016 21:19
    lunes, 26 de septiembre de 2016 21:18

Respuestas

  • Cael1020,

    Para obtener el nombre del archivo sin la extensión puedes hacer uso del método GetFileNameWithoutExtension():

    For Each archivos As String In Directory.GetFiles("E:\ARCHIVOS",
    						"*.pdf",
    						SearchOption.AllDirectories)
    	'Obtiene el nombre del archivo sin la extensión
    	ListBox1.Items.Add(Path.GetFileNameWithoutExtension(archivos))
    Next

    Respecto a desplazase de forma circular por la lista basta con evaluar el índice seleccionado actualmente:

    Private Sub ListBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ListBox1.KeyDown
    
    	Select Case e.KeyCode
    		Case Keys.Down
    			If ListBox1.SelectedIndex = ListBox1.Items.Count - 1 Then
    				e.Handled = True
    				ListBox1.SelectedIndex = 0
    			End If
    		Case Keys.Up
    			If ListBox1.SelectedIndex = 0 Then
    				e.Handled = True
    				ListBox1.SelectedIndex = ListBox1.Items.Count - 1
    			End If
    	End Select
    
    End Sub


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Cael1020 martes, 27 de septiembre de 2016 5:10
    martes, 27 de septiembre de 2016 3:56

Todas las respuestas

  • Cael1020,

    Para obtener el nombre del archivo sin la extensión puedes hacer uso del método GetFileNameWithoutExtension():

    For Each archivos As String In Directory.GetFiles("E:\ARCHIVOS",
    						"*.pdf",
    						SearchOption.AllDirectories)
    	'Obtiene el nombre del archivo sin la extensión
    	ListBox1.Items.Add(Path.GetFileNameWithoutExtension(archivos))
    Next

    Respecto a desplazase de forma circular por la lista basta con evaluar el índice seleccionado actualmente:

    Private Sub ListBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ListBox1.KeyDown
    
    	Select Case e.KeyCode
    		Case Keys.Down
    			If ListBox1.SelectedIndex = ListBox1.Items.Count - 1 Then
    				e.Handled = True
    				ListBox1.SelectedIndex = 0
    			End If
    		Case Keys.Up
    			If ListBox1.SelectedIndex = 0 Then
    				e.Handled = True
    				ListBox1.SelectedIndex = ListBox1.Items.Count - 1
    			End If
    	End Select
    
    End Sub


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Cael1020 martes, 27 de septiembre de 2016 5:10
    martes, 27 de septiembre de 2016 3:56
  • Me ayudo mucho, muchas gracias, saludos y gracias profesor.
    martes, 27 de septiembre de 2016 5:10
  • Una pregunta mas para distinguir la diferencia, si solo deseo saber ahora ya no el nombre solo las extensiones que hay?
    martes, 27 de septiembre de 2016 5:18
  • Cael1020,

    Para el caso propuesto tienes el método GetExtension(), de hecho el nombre es bastante elocuente respecto a su función.

    For Each archivos As String In Directory.GetFiles("E:\ARCHIVOS",
    						"*.pdf",
    						SearchOption.AllDirectories)
    	'Obtiene el nombre del archivo sin la extensión
    	ListBox1.Items.Add(Path.GetExtension(archivos))
    Next


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 28 de septiembre de 2016 3:03
  • Una pregunta Profesor tengo un problema con este código me puede ayudar deseo visualizar los formatos que yo deseo ver, puede ser mas de 3 formatos.

    ListBox1.Items.Clear()
    
      For Each archivos As String In Directory.GetFiles(Label1.Text, _
    
                                                     "*.pdf" & "*.doc" & "*.jpg", _
                                                     SearchOption.AllDirectories)
                ListBox1.Items.Add(Path.GetFileNameWithoutExtension(archivos))

    domingo, 2 de octubre de 2016 22:20