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.