web-dev-qa-db-fra.com

C # - Comment personnaliser OpenFileDialog pour sélectionner plusieurs dossiers et fichiers?

J'ai posté - Comment utiliser OpenFileDialog pour sélectionner un dossier? , je n'ai pas trouvé la bonne réponse. Donc, j'ai changé ma question.

Je souhaite personnaliser OpenFileDialog pour sélectionner plusieurs dossiers et fichiers. J'ai essayé de trouver une solution et j'ai pu lire quelques articles à ce sujet.

Sur Internet, j'ai trouvé le projet suivant - https://github.com/scottwis/OpenFileOrFolderDialog .

Cependant, en l'utilisant, j'ai rencontré un problème. Il utilise les structures GetOpenFileName etOPENFILENAMEde MFC. EtOPENFILENAMEa le membre nommé " templateID ". C'est l'identifiant du modèle de dialogue. Et l'exemple de projet contient le fichier " res1.rc " et contient également le dialogue basé sur un modèle.

Mais je ne sais pas Comment puis-je joindre ce fichier à mon projet C #?

Ou existe-t-il une autre solution idéale concernant - " Comment personnaliser OpenFileDialog pour sélectionner plusieurs dossiers et fichiers? "?

13
Yun

Si vous utilisez la propriété FileNames au lieu de la propriété FileName, vous obtenez un tableau de chaînes de chaque fichier sélectionné, vous sélectionnez plusieurs fichiers à l'aide de la touche Maj. Ainsi:

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog x = new OpenFileDialog();
    x.Multiselect = true;
    x.ShowDialog();
    string[] result = x.FileNames;

    foreach (string y in result)
       MessageBox.Show(y, "Selected Item", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Pour les fichiers et les dossiers, vous devez utiliser la variable CommonOpenFileDialog incluse avec WinAPI , la classe particulière est ici .

11
JMK

Essaye ça:

openFileDialog.Multiselect = true;
1
Embedd_Khurja

Vous pourriez ne pas obtenir un contrôle .Net intégré comme ça. Certainement, OpenFileDialog ne peut pas fonctionner à la fois comme un fichier et un navigateur de dossiers. Vous avez deux choix: optez pour un outil tiers, tel que celui que vous avez trouvé en second, créez votre propre contrôle. Étonnamment, vous ne trouverez peut-être pas très difficile de créer une version très simple de votre propre contrôle.

1
Arif Eqbal