Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    44

    [VB.NET] combobox e directory

    qualcuno sa dirmi come far apparire l'insieme dei file di una cartella dentro una combobox con il metodo openfiledialog? io sono riuscito a farlo funzionare ma non riesco a visualizzare nella combobox tutti i file .wav dentro la directory, o meglio.....li vede e se ne seleziono uno soltanto, gli altri non ci sono più. come faccio? vorrei fare in modo che all'apertura di un singolo file dentro la cartella, gli altri rimangono visualizzabili e cliccabili dentro la combobox, questo e quello che ho scritto con la mia poca esperienza:


    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    My.Computer.Audio.Play(ComboBox1.Text)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    OpenFileDialog1.ShowDialog()
    Label1.Text = OpenFileDialog1.SafeFileName
    ComboBox1.Text = OpenFileDialog1.SafeFileName
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    My.Computer.Audio.Stop()
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

    End Sub
    End Class

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Il componente OpenFileDialog serve per richiamare la finestra di dialogo comune di Windows per selezionare uno o più file: non è il componente che devi utilizzare.

    Per il tuo obiettivo, devi sfruttare le classi del namespace System.IO.

    Leggi la documentazione MSDN a riguardo, inclusi gli esempi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    44
    grazie Alka ma non ci ho capito lo stesso, insomma sembrava facile mettere su due righe di codice ma nulla, devo ancora approfondire i miei studi evidentemente.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da fifiddu
    grazie Alka ma non ci ho capito lo stesso
    Studia la documentazione e spiega cosa non capisci, altrimenti l'unica soluzione possibile è darti sempre la cosiddetta "pappa pronta".
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da fifiddu
    grazie Alka ma non ci ho capito lo stesso, insomma sembrava facile mettere su due righe di codice ma nulla, devo ancora approfondire i miei studi evidentemente.
    Alka dice giusto.

    La finestra corretta da usare è la BrowseForFolder (sfoglia per cartelle) che restituisce il percorso della cartella selezionata dall'utente:
    codice:
    Using fbdialog As New FolderBrowserDialog
        With fbdialog
            .RootFolder = Environment.SpecialFolder.Desktop
            .Description = "Seleziona la cartella"
            If .ShowDialog = DialogResult.Cancel Then Exit Sub
    
            ' ricavo l'elenco dei files
            Dim dirInfo As New IO.DirectoryInfo(.SelectedPath)
            Dim files = dirInfo.GetFiles()
            ComboBox1.Items.Clear()
            ' popolo ComboBox1
            For Each theFile In files
                ComboBox1.Items.Add(theFile.Name) 
            Next
        End With
    End Using
    Per contro, è anche vero che tale finestra è meno user-friendly rispetto alla OpenFileDialog, nel senso che l'utente vede solo le cartelle, ma in effetti è quello che chiedi tu.

    Nella OpenFileDialog, invece, può avere altre informazioni sui file (ma che comunque non sono determinanti ai fini della selezione della cartella).

    Usando un OpenFileDialog si potrebbe 'aggirare' il problema così:
    - apri la finestra.
    - selezioni un file, OK per confermare.
    - ricavi dal file selezionato il percorso assoluto.
    - con quello popoli il combobox:

    codice:
    Using ofd As New OpenFileDialog
        If ofd.ShowDialog() = Windows.Forms.DialogResult.Cancel Then Exit Sub
    
        Dim sPath = IO.Path.GetDirectoryName(ofd.FileName) 'ricavo il percorso dal nome del file
        Dim dirInfo As New IO.DirectoryInfo(sPath) ' ricavo informazioni sul percorso
        Dim files = dirInfo.GetFiles() ' acquisisco l'elenco dei file
        Dim thisFile As FileInfo ' fornisce informazioni sul singolo file
    
        ' popolo ComboBox1
        For Each thisFile In files
            ComboBox1.Items.Add(thisFile.Name) 
        Next
    End Using

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.