Alka dice giusto.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.![]()
La finestra corretta da usare è la BrowseForFolder (sfoglia per cartelle) che restituisce il percorso della cartella selezionata dall'utente:
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.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
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![]()

Rispondi quotando