Passer au contenu

Comment sélectionner plusieurs fichiers dans une boîte de dialogue ?

Solution : en modifiant une propriété du contrôle Common Dialog.

Le contrôle Common Dialog de Visual Basic 4 à 6 permet de sélectionner, en une seule opération, plusieurs fichiers dans une fenêtre de dialogue. Pour cela, la propriété Flags doit prendre la valeur de la constante OFN_ALLOWMULTISELECT. L’utilisateur peut alors sélectionner plusieurs fichiers en cliquant simplement sur leur nom et tout en maintenant appuyée la touche . Pour illustrer cette méthode, créez un nouveau projet exécutable. Choisissez la commande Projet/Composants, cochez l’option [Microsoft Common Dialog Control] et validez par [ok]. Sur le formulaire Form1 créé par défaut, ajoutez un contrôle Common Dialog, puis deux contrôles de type TextBox et enfin un bouton de commande. Cliquez avec le bouton droit de la souris sur le contrôle Text2, sélectionnez Propriétés, et affectez à la propriété Multiline la valeur True.Ouvrez la page de code avec la commande Affichage/Code et saisissez le listing ci-dessous. Lancez le programme par . Sur le formulaire, activez le bouton [command1], sélectionnez plusieurs fichiers dans le répertoire de votre choix et validez par [ok]. Le contrôle Text1 affichera alors le répertoire choisi et le contrôle Text2, la liste de fichiers choisis.Listing :
Private Sub Command1_Click()
Dim I, Y, Z as Integer
Dim FileNames$()


CommonDialog1.FileName = “”
CommonDialog1.Filter = “All Files|*.*”
CommonDialog1.Flags = cdlOFNAllowMultiselect
CommonDialog1.Action = 1
CommonDialog1.FileName = CommonDialog1.FileName & Chr(32)


Z = 1
For I = 1 To Len(CommonDialog1.FileName)
I = InStr(Z, CommonDialog1.FileName, Chr(32))
If I = 0 Then Exit For
ReDim Preserve FileNames(Y)
FileNames(Y) = Mid(CommonDialog1.FileName, Z, I – Z)
Z = I + 1 : Y = Y + 1
Next


If Y = 1 Then
Text1.Text = FileNames(0)
Else
Text2.Text = “”
For I = 0 To Y – 1
If I = 0 Then
Text1.Text = FileNames(I)
Else
Text2.Text = Text2.Text & UCase(FileNames(I)) & Chr$(13) & Chr$(10)
End If
Next
End If
End Sub

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Alain Coupel