He estado revisando unas pruebas que hice en vb2008 y asi parece que me funciona:
Te pongo las 3 subs de eventos de los listbox
Código vb:
Ver originalPrivate Sub Dir1_Change(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Dir1.Change
On Error Resume Next
File1.Path = Dir1.DirList(Dir1.DirListIndex)
End Sub
Private Sub Drive1_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Drive1.SelectedIndexChanged
On Error GoTo ErrorDC
Dir1.Path = VB.Left(Drive1.SelectedItem.ToString, 2)
Exit Sub
ErrorDC:
'MsgBox(Err.Description)
Err.Clear()
Drive1.Drive = VB.Left(Dir1.Path, 2)
End Sub
Private Sub File1_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles File1.DoubleClick
On Error Resume Next
If VB.Right(Dir1.DirList(Dir1.DirListIndex), 1) = "\" Then
Fichero = Dir1.DirList(Dir1.DirListIndex) & File1.FileName
Else
Fichero = Dir1.DirList(Dir1.DirListIndex) & "\" & File1.FileName
End If
End Sub
Prueba a ver si pita.