2009-10-28 11 views
6

Tworzę oprogramowanie, które musi umożliwiać WYŁĄCZNIE pliki i foldery za pomocą OpenFileDialog, które znajdują się w tym samym katalogu co program i które znajdują się w głębszych folderach. Nie chcę, aby OpenFileDialog mógł wybierać rzeczy poza bieżącym katalogiem programu. Czy jest to możliwe do zrobienia w języku C# przy użyciu OpenFileDialog?C# OpenFileDialog Lock To Directory

proszę dać mi znać

Dzięki

+0

Retagged od „OpenFileDialog zamka do drzewa katalogów” – pyrocumulus

+2

wiem te dialogi mogą być nadpisane i dostosowane .. to sprawdzić – Letterman

Odpowiedz

1

można sprawdzić, czy ścieżka jest prawidłowa po wybraniu

jeśli jej tylko zaakceptować lub wysłać okno komunikatu powiedz mu wybrać inny katalog

1

Obawiam się, że nie mogę. Większość ludzi stworzyła własne niestandardowe okno dialogowe dla tego scenariusza.

+0

To wydaje się być poprawne. http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ae322891-fd55-4027-ae4f-53100ae32852 – RCIX

2

Nie widzę żadnych out of box wsparcia przez formant OpenFileDialog. Można jednak wykonać następujące czynności: Ustaw właściwość InitialDirectory na ścieżkę do programu. Następnie, jeśli użytkownik wybierze określoną ścieżkę poza ścieżką programu, użyj zdarzenia FileOk, aby to sprawdzić i przywrócić do katalogu InitialDirectory.

Jeśli chcesz uzyskać większą kontrolę, musisz napisać własne okno dialogowe.

1

To jak to zrobiłem.

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(); 

      }      
     }