Choix d'un dossier

Le
Rosalie Mignon
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide d'un
"explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que
l'affichage des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le
dossier soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas le
cas.

Auriez vous une solution ?

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
at
Le #21302041
Rosalie Mignon a utilisé son clavier pour écrire :
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide d'un
"explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que l'affichage
des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le dossier
soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas le
cas.

Auriez vous une solution ?

Merci d'avance.




Ajoute un module, colle lui ça

===============================
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal
pidList As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal
lpString1 As String, _
ByVal lpString2 As String) As Long

Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Public Function SelectFolder(Titre As String, Handle As Long) As String

Dim lpIDList As Long
Dim strBuffer As String
Dim strTitre As String
Dim tBrowseInfo As BrowseInfo

strTitre = Titre
With tBrowseInfo
.hWndOwner = Handle
.lpszTitle = lstrcat(strTitre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With

lpIDList = SHBrowseForFolder(tBrowseInfo)

If (lpIDList) Then
strBuffer = String(260, vbNullChar)
SHGetPathFromIDList lpIDList, strBuffer
SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
End If

End Function



===============
A appeler depuis ta form avec

Dim mypath,myname

' boite de dialogue pour les dossiers.
mypath = SelectFolder("Sélectionnez un répertoire :", Me.hWnd) & ""

MsgBox mypath


-------------------

A+
at
Le #21302231
Après mûre réflexion, Rosalie Mignon a écrit :
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide d'un
"explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que l'affichage
des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le dossier
soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas le
cas.

Auriez vous une solution ?

Merci d'avance.



Je complète, car avec dirlistbox tu peux aussi le faire,


Private Sub Dir1_click()
MsgBox Dir1.List(Dir1.ListIndex)
End Sub


Et bien sur tu peux definir un chemin avec dir1.path="c:dossiers"
Rosalie Mignon
Le #21302221
Rapide,Clair, efficace !

un grand bravo!

Merci.


"at" 4b8d6e5b$0$17856$
Après mûre réflexion, Rosalie Mignon a écrit :
Bonjour

Je voudrais que l'utilisateur de mon programme puisse choisir a l'aide
d'un "explorateur" le dossier dans lequel copier ses sauvegardes.

J'ai essaye avec Commondialog, mais je n'arrive pas a imposer que
l'affichage des dossiers.
J'ai essaye avec DirListBox, mais il faut un double click pour que le
dossier soit pris en compte, ce qui est genant vu que l'affichage
donne l'impression que le dossier est selectionne alors que ce n'est pas
le cas.

Auriez vous une solution ?

Merci d'avance.



Je complète, car avec dirlistbox tu peux aussi le faire,


Private Sub Dir1_click()
MsgBox Dir1.List(Dir1.ListIndex)
End Sub


Et bien sur tu peux definir un chemin avec dir1.path="c:dossiers"




at
Le #21302531
Rosalie Mignon a couché sur son écran :
Rapide,Clair, efficace !

un grand bravo!

Merci.




Avec plaisir :)
Publicité
Poster une réponse
Anonyme