Map openen die in listbox wordt weergegeven

Status
Niet open voor verdere reacties.

HandyMan

Gebruiker
Lid geworden
12 mei 2008
Berichten
170
Goedenacht allemaal,

Ik heb een listbox gemaakt waarin alle submappen van een bepaalde map in worden weergegeven.

Nu zou ik graag door middel van een dubbelklik of een button de geselecteerde map willen openen.

Kan iemand mij hiermee helpen?
 
Dat kan bijvoorbeeld op deze manier:
Process.Start("explorer.exe", ListBox1.SelectedItem)
 
Als ik dat invoer bij een button op deze manier:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Process.Start("explorer.exe", ListBox1.SelectedItem)
End Sub

Dan krijg ik een error wanneer ik daadwerkelijk een item selecteer en op de button click, en als ik zonder iets te selecteren op de button klik opent explorer.exe gewoon.

Ik doe vast iets fout, want ik ben pas net begonnen met Visual basic..

De foutmelding:
An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll

Additional information: De conversie van type DirectoryInfo naar type String is ongeldig.
 
Laatst bewerkt:
Als je er net mee begonnen bent moet je inderdaad nog leren dat als je zegt een fout te krijgen je deze ook in je post vermeld.
 
Sorry, heb nu de foutmelding bij het vorige bericht gevoegd.
 
Ok. Laat ook eens de inhoud van ListBox1 zien en hoe je die hebt gevuld.
ListBox1.SelectedItem gaat uit van een String en aan de fout te zien heb je iets anders.
 
De listbox krijgt zijn data door middel van
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim directory = "C:\Users\Raymond\Desktop\Klantenbestand Schrijver\required files\documenten"
Dim files() As System.IO.DirectoryInfo
Dim dirinfo As New System.IO.DirectoryInfo(directory)
files = dirinfo.GetDirectories("*", IO.SearchOption.AllDirectories)
For Each file In files
ListBox1.Items.Add(file)
Next
End Sub

Hij pakt dus alle submappen van C:\...\documenten\
 
dirinfo.GetDirectories geeft alleen de naam van de map terug en Process.Start("explorer.exe", ListBox1.SelectedItem) verwacht als SelectedItem het volledige pad naar de gekozen map.

Die kun je vinden in het FullName attribuut van DirInfo object.
Zie:
http://msdn.microsoft.com/en-us/library/system.io.directoryinfo.aspx

Je kunt ook dit proberen:
Process.Start("explorer.exe", directory & "\" & ListBox1.SelectedItem)
 
Laatst bewerkt:
Duidelijk, dan snap ik waarom het niet werkt.

Is er een manier om het dan wel werkend te krijgen zoals ik wil?
 
Ik heb net m'n vorige post wat aangevuld.
 
Als je een TreeView (en dus meerdere 'directorylagen') gebruikt, zou je het volle pad ook in de Tag-property van elk item kunnen opslaan.
 
Maar het is nu wel gelukt met:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Process.Start("explorer.exe", ListBox1.SelectedItem.FullName)
End Sub

Dankuwel, problem solved.
 
Well done! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan