2009-10-28 8 views
6

Je crée un logiciel qui doit UNIQUEMENT pouvoir permettre aux gens de sélectionner des fichiers et des dossiers en utilisant OpenFileDialog qui se trouvent dans le même répertoire que le programme et qui se trouvent dans des dossiers plus profonds. Je ne veux pas que OpenFileDialog puisse sélectionner des choses en dehors du répertoire courant du programme. Est-ce possible de faire en C# en utilisant OpenFileDialog?C# OpenFileDialog Verrouiller au répertoire

S'il vous plaît laissez-moi savoir

Merci

+0

Retagged de « verrouillage OpenFileDialog à arborescence » – pyrocumulus

+2

Je sais que ces dialogues peuvent être outrepassées et personnalisé .. vérifier cela – Letterman

Répondre

1

vous pouvez vérifier si le chemin est correct après sélectionné

si son juste accepter ou de lui envoyer dire boîte de message vous sélectionnez répertoire différent

1

Je crains que vous ne pouvez pas. La plupart des personnes ont créé leur propre boîte de dialogue personnalisée pour ce scénario.

+0

Cela semble être correct. http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ae322891-fd55-4027-ae4f-53100ae32852 – RCIX

2

Je ne vois aucun support prêt à l'emploi par le contrôle OpenFileDialog. Toutefois, vous pouvez essayer ce qui suit,

Définissez la propriété InitialDirectory à votre chemin de programme. Ensuite, si un utilisateur sélectionne un chemin particulier en dehors de votre chemin de programme, utilisez l'événement FileOk pour le vérifier et le ramener dans InitialDirectory.

Si vous voulez beaucoup plus de contrôle, vous devrez écrire votre boîte de dialogue personnalisée.

1

Voici comment je l'ai fait.

openFileDialog1.InitialDirectory = Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName"); 

     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     {    
       while(Path.GetDirectoryName(openFileDialog1.FileName) != Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName")){ 

        MessageBox.Show("Please select .EXE which is in the default folder", "Wrong folder", MessageBoxButtons.OK, MessageBoxIcon.Information); 
       openFileDialog1.ShowDialog(); 

      }      
     }